Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: upload plików
Forum PHP.pl > Forum > PHP
wipo
Mam taki dziwny problem.
Napisałem skrypt uploadu plików z poziomu przeglądarki (move_uploaded_file) i:
na linuxie z zainstalowanym apachem działa zawsze.
na windowsie z zainstalowanym XAMPP jedne pliki przegrywa drugie nie.

Co jest najśmieszniejsze to nie ma żadnych zależności między przegrywanymi plikami, po prostu raz je przegrywa raz nie.

Gdzie może tkwić błąd? Powiem że testowałem to nawet na przykładzie z php.net i mam ten sam problem
Sh4dow
malutkie pliki tez wywala ? czy tylko duze ? Jesli duze sprawdz czas wykonywania skryptu i czas oczekiwania na posta (czy jakos tak to sie nazywa w php.ini). Ale jesli nawet najprostrze skrypty ci padaja to oznacza błąd w konfiguracji serwera
wipo
Niezależnie od nazwy rozmiary typu itp
W konfiguracji xampp nic nie ruszałem więc może jakiś bug?
Sh4dow
tak, chyba bug xampp'a. Sadzisz ze upload plikow jako czesto uzywana funkcjonalnosc miała by jakiegos nieznanego buga ?
Moze byc podal jakies kody, błędy ustawił error_reporting na E_ALL itd smile.gif
guitar.gif
wipo
Upload
  1. <?php
  2. if (($_POST['dodaj_produkt'])&&(is_numeric($_GET['id_produktu']))){
  3. $nazwa_produktu=$_POST['nazwa_produktu'];
  4. $opis_produktu=$_POST['opis_produktu'];
  5. $cena=str_replace(",",".",$_POST['cena']);
  6. $kategoria=$_POST['kategoria'];
  7. $ilosc=$_POST['ilosc'];
  8. $zdjecie=$_FILES['zdjecie']['name'];
  9. $zdjecie_t=$_FILES['zdjecie']['tmp_name'];
  10. $id_produkt=$_GET['id_produktu'];
  11.  
  12. if (mysql_query("update produkt set nazwa_produktu='$nazwa_produktu',opis_produktu='$opis_produktu',cena='$cena',
  13. kategoria='$kategoria',ilosc_na_magazynie='$ilosc' where id_produktu=".$_GET['id_produktu'])){
  14. chdir("../produkty");
  15. chdir($id_produkt);
  16. // print getcwd()."<br>";
  17. // print basename($zdjecie)."<br>";
  18. // print $zdjecie_t."<br>";
  19. if (!empty($zdjecie)){
  20. if (move_uploaded_file($zdjecie_t,basename($zdjecie))){
  21. mysql_query("update produkt set zdjecie='".basename($zdjecie)."' where id_produktu=".$_GET['id_produktu']);
  22. } else {
  23. print "Nie można przegrać zdjęcia.";
  24. print $_FILES['userfile']['error'];
  25. }
  26. } else {
  27. //mysql_query("update produkt set zdjecie='' where id_produktu=$id_produktu");
  28. }
  29. chdir("../../admin");
  30. print "Produkt zostal zmieniony";
  31. }
  32. }
  33. ?>


a dostaje tylko błąd undefindex index kasuj_produkt po reporting_error

Co jeszcze śmieszniejsze błąd występuje tylko przy edycji rekordu (przy jego dodawaniu nie)
Sh4dow
to: error_reporting(E_ALL); to daj moze lepiej na poczatku a nie na koncu.
a przy okazji, blad załadowanego pliku sprawdzamy przed jego załadowaniem, a nie wyświetlamy po.
  1. <?php
  2. if( $_FILES['userfile']['error'] != ) {
  3. //OK
  4. } else {
  5. //ERROR!
  6. }
  7. ?>
wipo
1. reporting_error dałem na początku i na końcu.
$_FILES['zdjecie']['error'] faktycznie za późno.

Ale to nie zmienia faktu że błąd jest tylko undefined_index kasuj_produkt


Uporałem się ale nie wiem do tej pory o co chodzi

Wystarczy że odczekam pomiędzy kolejnymi uploadami zdjęcia jakieś 20 sekund i wszystko działa.
Jak robię to za szybko to system raz przegra raz nie (to samo zdjęcie)
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.