Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Upload plików bez przejścia do innej strony
castagir
post 21.05.2016, 11:45:47
Post #1





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


Witam!

Potrzebuję stworzyć prosty upload obrazu, bez przeładowania strony.
Chodzi o wrzucenie avatara, a zanim nastąpi przeniesienie na serwer, najpierw zweryfikować czy jest odpowiedniego formatu i wagi.

Jedyne poradniki jakie znalazłem w internecie to typowe <FORM>, które po prostu przerzucają na nową stronę. Natomiast gry próbuję grzebać w JS, to ciągle mi wychodzi, że nie może odnaleźć żadnych files w tablicy, albo w ogóle nic nie reaguje.
Nie miałem z tym wcześniej styczności i całkowicie nie wiem jak to ugryźć. Czy ktoś może mógłby polecić jakiś dobry poradnik, lub napisać kilka wskazówek od czego zacząć lub co robić dalej?
Go to the top of the page
+Quote Post
Comandeer
post 21.05.2016, 11:54:29
Post #2





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


A może https://developer.mozilla.org/en/docs/Web/API/FormData ?


--------------------
Go to the top of the page
+Quote Post
viking
post 21.05.2016, 12:01:20
Post #3





Grupa: Zarejestrowani
Postów: 6 366
Pomógł: 1115
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A jak chcesz od razu gotowe to możesz użyć http://www.dropzonejs.com/


--------------------
Go to the top of the page
+Quote Post
castagir
post 21.05.2016, 12:16:51
Post #4





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


Mam taki przycisk, z którego chciałbym wydobyć więcej o tym pliku:
  1. <div class="if-A1">
  2. <span>wybierz</span>
  3. <input type="file" name="plik-avatar" accept="image/*">
  4. </div>


Próbuję takich metod i nic:
  1. var plik = new FormData($('input[name="plik-avatar"]'));
  2. -----------------------
  3. var plik = new FormData($('input[name="plik-avatar"]').files[0]);
  4. -----------------------
  5. var plik = $('input[name="plik-avatar"]');
  6. alert(plik.name);
  7. -----------------------
  8. var plik = $('input[name="plik-avatar"]');
  9. alert(plik.files[0].name);


Cytat(viking @ 21.05.2016, 13:01:20 ) *
A jak chcesz od razu gotowe to możesz użyć http://www.dropzonejs.com/


Nie lubię korzystać z gotowców, bo za dużo jest szperania w kodzie i modyfikacji. Staram się robić po swojemu, tylko najtrudniej jest mi zacząć, gdyż nie wiadomo z którego miejsca podejść niektóre tematy.
Ma to też takie znaczenie, że jeżeli się nauczę tego teraz to później łatwiej mi będzie modyfikować, a będę to robić na 100%.

Mimo to dzięki za podesłanie smile.gif
Go to the top of the page
+Quote Post
kayman
post 21.05.2016, 12:29:28
Post #5





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. var image = document.getElementById("img");
  2. file = image.files[0];
  3. if (file.type === 'image/jpeg') {
  4.  
  5. formData = new FormData();
  6. formData.append('action', 'saveImage');
  7. formData.append('image', file);
  8.  
  9. $.ajax({
  10. url: '/ajax.php',
  11. type: "POST",
  12. data: formData,
  13. processData: false,
  14. contentType: false,
  15. success: function (result) {
  16. successSaveImage(result);
  17. }
  18. });
  19. } else {
  20. $('#error').text('Zły plik');
  21. }


Ten post edytował kayman 21.05.2016, 12:32:46
Go to the top of the page
+Quote Post
Comandeer
post 21.05.2016, 16:22:03
Post #6





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Kod
var plik = new FormData($('input[name="plik-avatar"]'));

Nic dziwnego, że nie działa, skoro przekazujesz obiekt jQuery opakowujący input a nie formularz jako obiekt DOM
Kod
var form = new FormData( document.querySelector( 'form.jakis-tam' ) );


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 3.06.2024 - 23:29