Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Upload plików
Forum PHP.pl > Forum > Przedszkole
castagir
Witam!

Problem jak w temacie i opisie. Próbuję zrobić upload różnych plików, lecz póki co możliwe jest tylko wrzucenie obrazów i dokumentów tekstowych.
Wydaje mi się, że chodzi chyba o rozmiar pliku, lecz nie jestem pewien.

Tutaj skrypt JS, który przekazuje dany plik do serwera:
  1. var plik = document.getElementById('plik');
  2. plik = plik.files[0];
  3.  
  4. formData = new FormData();
  5. formData.append('plik', plik);
  6. $.ajax({
  7. url :ZAG_ajax+'silnik/konsola/php/pliki/pliki_plik_test.php',
  8. type :'POST',
  9. dataType:'JSON',
  10. data :formData,
  11. processData: false,
  12. contentType: false,
  13. success :function(odp) {
  14. if(odp===true){
  15.  
  16. }
  17. else{
  18.  
  19. }
  20. }
  21. });


Tutaj natomiast jest skrypt PHP obsługujący wysłany plik:
  1. $w=true;
  2. $B = '';
  3.  
  4. // SPRAWDZENIE CZY TYP PLIKU JEST ODPOWIEDNI:
  5. $typ = explode('/', $_FILES['plik']['type']);
  6. switch(typ[0]){
  7. case 'image': $typ[0] = 'obraz'; break;
  8. case 'application': $typ[0] = 'aplikacja'; break;
  9. }
  10. $typ[1] = strtoupper($typ[1]);
  11.  
  12. // Sprawdzenie rozmiaru pliku:
  13. if($_FILES['plik']['size']>1000000){
  14. $rozmiar = round($_FILES['plik']['size']/1000000, 2).' MB';
  15. }
  16. elseif($_FILES['plik']['size']>1000){
  17. $rozmiar = round($_FILES['plik']['size']/1000, 2).' KB';
  18. }
  19. else{
  20. $rozmiar = $_FILES['plik']['size'].=' B';
  21. }
  22.  
  23.  
  24.  
  25. if($w==true){
  26. $odp=true;
  27. }
  28. else{
  29. $odp=$B;
  30. }
  31. echo json_encode($odp);


Jak zrobić aby upload obsługiwał wszystkie pliki, bez względu na format i rozmiar?
emstawicki
Chociaż nie udostępniłeś całego skryptu obsługującego plik po stronie serwera, strzelam żeby rozszerzyć tę instrukcję wyboru:
  1. switch(typ[0]){
  2. case 'image': $typ[0] = 'obraz'; break;
  3. case 'application': $typ[0] = 'aplikacja'; break;
  4. }
castagir
Cytat(emstawicki @ 8.06.2016, 14:14:40 ) *
Chociaż nie udostępniłeś całego skryptu obsługującego plik po stronie serwera, strzelam żeby rozszerzyć tę instrukcję wyboru:
  1. switch(typ[0]){
  2. case 'image': $typ[0] = 'obraz'; break;
  3. case 'application': $typ[0] = 'aplikacja'; break;
  4. }


Ten akurat fragment nie ma żadnego wpływu. To jest tylko do stworzenia wiadomości zwrotnej do JS, gdy upload zostanie już wykonany.
emstawicki
To jak Tobie mamy pomóc jeżeli nie udostępniłeś kodu, który odpowiada za zapis pliku na serwerze? sad.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.