Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] obraz nie wgrywa sie na serwer
Forum PHP.pl > Forum > Przedszkole
test
Witam,

Mam problem z wgraniem obrazka na serwer

fragment kodu z formularzem :

  1. <form action=\"oferty.php?f=zapisz\" method=\"post\" enctype=\"multipart/form-data\" onsubmit=\"return rozszerzenie(this)\">
  2. class=\"tabela_td\" valign=\"top\">
  3. <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"400000\" />
  4. <input type=\"hidden\" name=\"fotka\" value=\"ok\" />
  5. <input class=\"wyslij_formularz\" type=\"file\" name=\"plik\"><br>
  6. </form>


plik przetwarxajacy

  1. if ($_POST['fotka']=="ok")
  2. {
  3. chmod ('obrazy',750);
  4. $p_pojemnosc=$_FILES['plik']['size'];//pojemnosc pliku
  5. $p_typ=$_FILES['plik']['type']; // typ pliku
  6. $p_nazwa=$_FILES['plik']['name']; // nazwa pliku
  7. $p_smiec=$_FILES['plik']['tmp_name']; // chwilowa nazwa pliku
  8.  
  9. //wycinamy rozszerzenie z pobieranego pliku
  10. $p_roz= array_pop(explode(".", $p_nazwa));
  11.  
  12. /* odbieramy dane z pola ukrytego i zaokrąglamy je do 3 miejsca
  13.   po przecinku/dzielimy przez 1204*1024 by było w MB*/
  14. $max_size=round(($_POST['max_file_size']/1048576),3)."MB";
  15.  
  16.  
  17. //zaokrąglamy "round" do 2 miejsc po przecinku i przeliczamy rozmiar pliku na MB
  18. $poj_MB=round(($p_pojemnosc/1048576),2).'MB';
  19.  
  20. //kodujemy nasz plik metodą MD5 i dodajemy date i godzinę oraz rozszerzenie pliku
  21. $p_nazwa_zm=(md5($p_nazwa)).".".$p_roz;
  22. $folder="obrazy/";
  23.  
  24. //---Kolorki HTML---
  25. $k_cze="<font color=#ff0000>";
  26. $f_koniec="</font>";
  27. $k_nieb="<font color=#0000ff>";
  28.  
  29. if ($p_pojemnosc <= 0)
  30. {
  31. echo ("Plik jest pusty nie mogę go przesłać <b>".$k_cze.$p_nazwa." ".$poj_MB.$f_koniec."</b><br />");
  32.  
  33. }
  34.  
  35. if ($poj_MB > $max_size)
  36. {
  37. echo("Plik jest za duży maksymalnie można wysłać <b>".$k_cze.$max_size.$f_koniec."</b>"." .Plik wysyłany ma rozmiar <b><i>".$k_nieb.$poj_MB.$f_koniec."</b></i><br />");
  38.  
  39. }
  40.  
  41. if (file_exists($folder.$p_nazwa_zm))
  42. {
  43. echo ("Plik o takiej nazwie jest już na serwerku <b><i>".$p_nazwa_zm."</b></i><br />");
  44.  
  45. }
  46. else {
  47. if(!@move_uploaded_file($p_smiec, $folder.$p_nazwa_zm))
  48. exit('Nie mozna zachowac pliku. Prawdopodobnie nie ma folderu lub nie można w nim zapisać');
  49.  
  50. echo "Przeslanie udało się - <b>".$k_nieb.$p_nazwa."</b>"." ".$poj_MB."<br />";
  51. $path_file=$folder.$p_nazwa_zm;
  52. echo $path_file;
  53. }


po wgraniu pliku wychodzi komunikat ze :

Przeslanie udało się - Obraz.png 0MB
obrazy/cfc04a592b2bcf48bce961b5691e3818.png


na serwerze jest katalog /obrazy ale jest pusty
a najlepsze jest to iż jak jeszcze raz wgram to jest komnunikat :
Plik o takiej nazwie jest już na serwerku cfc04a592b2bcf48bce961b5691e3818.png
potreb
A co ci zwraca error dla $_FILES ?
test
Array ( [plik] => Array ( [name] => DSCF1054.JPG [type] => [tmp_name] => [error] => 2 [size] => 0 ) ) Plik jest pusty nie mogę go przesłać DSCF1054.JPG 0MB
nospor
To teraz łaskawie zajrzyj do manuala i zobacz co znaczy ERROR 2
http://pl.php.net/manual/pl/features.file-upload.errors.php
test
blad 2 za duzy rozmiar pliku i jak wgralem mniejszy to jest ok tylko dlaczego nie zadzialala :

if ($poj_MB > $max_size)
{
echo("Plik jest za duży maksymalnie można wysłać <b>".$k_cze.$max_size.$f_koniec."</b>"." .Plik wysyłany ma rozmiar <b><i>".$k_nieb.$poj_MB.$f_koniec."</b></i><br />");

exit;
}

ps. a dlaczego jak wejde przez tc to nie ma tych plikow w folderze a jak listuje przez php to jest
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.