Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][AJAX] Upload pliku i błąd, że plik nie został wybrany
in5ane
post 10.02.2014, 21:35:55
Post #1





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


Cześć. Dopisuję coś w skrypcie napisanym w CodeIgniter i mam problem. Próbuję zrobić upload plików poprzez ajax, ale coś nie prądzi. Plik niby dochodzi do kontrolera, ale uploader CodeIgniter'a wywala błąd. Poniżej moje kody, może ktoś co poratuję. Z góry dzięki.


html:
  1. <form id="uploadImage" method="post" enctype="multipart/form-data">
  2. <input type="file" name="fileUploadField" id="fileUploadField" />
  3. </form>


java script:
[JAVASCRIPT] pobierz, plaintext
  1. $.ajax({
  2. url: '<?=site_url('screen/upload')?>',
  3. data: $('#fileUploadField'),
  4. type: 'POST',
  5. success: function(data) {
  6. if (data != 'false')
  7. {
  8. alert("super");
  9. }
  10. else
  11. {
  12. alert("error");
  13. }
  14. },
  15. error: function() {
  16. alert("error");
  17. }
  18. });
[JAVASCRIPT] pobierz, plaintext


php:
  1. public function upload()
  2. {
  3. $config['upload_path'] = 'public/uploads/';
  4. $config['file_name'] = time().mt_rand().rand();
  5. $this->load->library('upload', $config);
  6. if (!$this->upload->do_upload('fileUploadField'))
  7. {
  8. print_r($this->upload->display_errors());
  9. print_r($_POST);
  10. exit(); // dodane podczas debugowania
  11. echo 'false';
  12. }
  13. else
  14. {
  15. echo $config['file_name'];
  16. }
  17. exit();
  18. }


post:
Kod
fileUploadField=DSCN2582.JPG


odpowiedź:
Kod
<p>You did not select a file to upload.</p>
Array
(
    [fileUploadField] => DSCN2582.JPG
)


Ten post edytował in5ane 10.02.2014, 21:41:18


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
nospor
post 11.02.2014, 07:59:21
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ajaxem nie da sie uplosowac plikow.

Cytat
Plik niby dochodzi do kontrolera,
Tyle czasu na forum, tyle napisanych aplikacji i jeszcze nie wiesz, ze plik po wyslaniu znajduje sie w tablicy $_FILES a nie $_POST? Tobie teraz jedynie dochodzi nazwa pliku a nie plik.

Podsumowujac: ajaxem nie da sie uplodowac plikow smile.gif Do tego ludzie wykorzystuja albo flashe, albo iframe albo inne cuda na kiju


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Turson
post 11.02.2014, 13:16:45
Post #3





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Polecam Plupload do tego
Go to the top of the page
+Quote Post
in5ane
post 12.02.2014, 20:47:31
Post #4





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


Da się zrobić upload bez przeładowania strony. Wystarczy użyć XMLHttpRequest.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
nospor
post 13.02.2014, 08:46:18
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to podziel sie kodem, chetnie sie czegos nowego nauczymy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
in5ane
post 13.02.2014, 12:21:10
Post #6





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


  1. var file = document.getElementById('fileToUpload').files[0];
  2. var formData = new FormData();
  3. formData.append("fileToUpload", file);
  4. var xhr = new XMLHttpRequest();
  5. var url = "http://website.com/upload.php";
  6. xhr.open("POST", url, false);
  7. xhr.send(formData);
I w PHP normalnie się odczytuje pliki z $_FILES. Można do tego dorobić eventy, jak np. czy plik się wgrał, czy nie było błędu, czy stworzyć progress bar.

Ten post edytował in5ane 13.02.2014, 12:31:15


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
nospor
post 13.02.2014, 12:23:27
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A jak wyglada klasa FormData?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
in5ane
post 13.02.2014, 12:31:05
Post #8





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


https://developer.mozilla.org/en-US/docs/Web/API/FormData


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
nospor
post 13.02.2014, 12:40:19
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Az z ciekawosci w wolnej chwili na to lukne i sie pobawie smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 25.07.2025 - 01:53