Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]bardzo dziwne zachowanie skryptu
Forum PHP.pl > Forum > Przedszkole
dudziec
Witam serdecznie, zmodyfikowałem sobie znalezione gotowce do uploadu plikow graficznych , wszystko by było ok. ale wyskakuje bład :

Warning: move_uploaded_file(../galeriak/1272679116_07031800.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in D:\VertrigoServ\www\radio\script\g.php on line 15
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Users\Eagle\AppData\Local\Temp\phpD277.tmp' to '../galeriak/1272679116_07031800.jpg' in D:\VertrigoServ\www\radio\script\g.php on line 15
Warning: chmod() [function.chmod]: No such file or directory in D:\VertrigoServ\www\radio\script\g.php on line 16
Warning: mkdir() [function.mkdir]: No such file or directory in D:\VertrigoServ\www\radio\script\g.php on line 29
Warning: imagecreatefromjpeg(../galeriak/1272679116_07031800.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in D:\VertrigoServ\www\radio\script\g.php on line 30
Warning: imagesx(): supplied argument is not a valid Image resource in D:\VertrigoServ\www\radio\script\g.php on line 31
Warning: imagesy(): supplied argument is not a valid Image resource in D:\VertrigoServ\www\radio\script\g.php on line 32
Warning: Division by zero in D:\VertrigoServ\www\radio\script\g.php on line 39
Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in D:\VertrigoServ\www\radio\script\g.php on line 41
Warning: imagecopyresized(): supplied argument is not a valid Image resource in D:\VertrigoServ\www\radio\script\g.php on line 42
Warning: imagejpeg(): supplied argument is not a valid Image resource in D:\VertrigoServ\www\radio\script\g.php on line 43
Warning: imagedestroy(): supplied argument is not a valid Image resource in D:\VertrigoServ\www\radio\script\g.php on line 44
Warning: imagedestroy(): supplied argument is not a valid Image resource in D:\VertrigoServ\www\radio\script\g.php on line 45


Co ciekawe tutaj mam plik o nazwie:

g.php - tam się przetwarza grafike

i formularz zaincludowany na stronie:
  1. <p>DODAJ ZDJĘCIE DO GALERII:</p>
  2. <form action="index.php?g" method="post" enctype="multipart/form-data">
  3. <p><input type="file" name="img" SIZE="65"/></p>
  4. <p><input type="submit" name="upload_submit" value="Wyślij zdjęcie" /></p></form>


gdy jest odwolanie do g.php - wszystko działa jak nalezy a jak odwołam do index.php?g bo taką mam strukture to wszystko siada!! :| i nie wiem gdzie szukać błedu



kod przetwarzania pliku wyglada tak:


  1.  
  2. <?
  3.  
  4. //przesyl pliku
  5. $img_tmp = $_FILES['img']['tmp_name']; //tymczasowy plik
  6.  
  7. $img_name = $_FILES['img']['name']; // nazwa pliku
  8.  
  9. $img_size = $_FILES['img']['size']; //
  10.  
  11. list($mt, $t) = explode(' ', microtime());
  12. $pic_name = $t.'_'.substr($mt, 2).'.jpg'; //nazwa pliku losowa
  13.  
  14. if(is_uploaded_file($img_tmp)) //upload pliku
  15. {
  16. move_uploaded_file($img_tmp,'../galeriak/'.$pic_name);
  17. chmod('../galeriak'.$pic_name,0755);
  18.  
  19. }
  20.  
  21. // tutaj tworzenie miniatury
  22. //$fname - folder w ktorym jest obrazek
  23. //$Image - nazwa obrazka
  24. //$MaxSize - maksymalny rozmiar
  25.  
  26. function tworzminiature($fname,$Image,$MaxSize){
  27. $filename = sprintf("%s/%s",$fname,$Image);
  28. $filename1 = sprintf("%s/tn/tn_%s",$fname,$Image);
  29. if (file_exists($filename1)) return;
  30. if (!file_exists("$fname/tn")) mkdir ("$fname/tn", 0777);
  31. $im = imagecreatefromjpeg($filename);
  32. $w = imageSX($im);
  33. $h = ImageSY($im);
  34. if ($w > $h)
  35. {
  36. $nw = $MaxSize;
  37. $nh = $h*$nw/$w;
  38. }else {
  39. $nh = $MaxSize;
  40. $nw = $w*$nh/$h;
  41. }
  42. $im1 = imagecreatetruecolor($nw,$nh);
  43. ImageCopyResized($im1,$im,0,0,0,0,$nw,$nh,$w,$h);
  44. ImageJpeg($im1,$filename1);
  45. ImageDestroy($im);
  46. ImageDestroy($im1);
  47. }
  48. //wywolanie funkcji tworzacej miniature
  49. tworzminiature("../galeriak",$pic_name,75);
  50.  
  51.  
  52. // tutaj zapytanie do bazy
  53.  
  54.  
  55.  
  56. //wyswietlanie wyniku
  57.  
  58.  
  59. ?>
  60.  



Co roboić bo ja głowy nie mam nic a nic :|
mortus
Tyle, że źle wkleiłeś kod. Błąd pojawia się w linii 15, a w linii 15 masz nawias. Wskaż, w którym miejscu dokładnie pojawia się błąd. Na pierwszy rzut oka, to w podanym przez Ciebie listingu w linii 17 brakuje slasha
  1. chmod('../galeriak/' . $pic_name, 0755);
Zastanawiam się jeszcze nad strukturą Twoich katalogów. Wydaje mi się, że masz mniej więcej tak
Kod
radio\
    script\
        g.php
    galeriak\
    index.php
I jeśli dołączasz plik g.php, za pomocą include, to ścieżka do galerii jest inna tzn. wygląda tak:
galeriak/,
a nie tak:
../galeriak/.
dudziec
Tak, była faktycznie tam błedna scierzka - ale teraz inny problem sie pojawił :

mały obrazek przetwarza hmmm, a gdy próbuje zdjecie włozyc pojawia sie komunikat :

Warning: imagecreatefromjpeg(galeriak//1272711320_39063200.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in D:\VertrigoServ\www\radio\script\g.php on line 30

Warning: imagesx(): supplied argument is not a valid Image resource in D:\VertrigoServ\www\radio\script\g.php on line 31

Warning: imagesy(): supplied argument is not a valid Image resource in D:\VertrigoServ\www\radio\script\g.php on line 32

Warning: Division by zero in D:\VertrigoServ\www\radio\script\g.php on line 39

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in D:\VertrigoServ\www\radio\script\g.php on line 41

Warning: imagecopyresized(): supplied argument is not a valid Image resource in D:\VertrigoServ\www\radio\script\g.php on line 42

Warning: imagejpeg(): supplied argument is not a valid Image resource in D:\VertrigoServ\www\radio\script\g.php on line 43

Warning: imagedestroy(): supplied argument is not a valid Image resource in D:\VertrigoServ\www\radio\script\g.php on line 44

Warning: imagedestroy(): supplied argument is not a valid Image resource in D:\VertrigoServ\www\radio\script\g.php on line 45
Dodano zdjęcie: 1272711320_39063200.jpg


kod php pliku g.php:

  1.  
  2. <?
  3.  
  4. //przesyl pliku
  5. $img_tmp = $_FILES['img']['tmp_name']; //tymczasowy plik
  6.  
  7. $img_name = $_FILES['img']['name']; // nazwa pliku
  8.  
  9. $img_size = $_FILES['img']['size']; //
  10.  
  11. list($mt, $t) = explode(' ', microtime());
  12. $pic_name = $t.'_'.substr($mt, 2).'.jpg'; //nazwa pliku losowa
  13.  
  14. if(is_uploaded_file($img_tmp)) //upload pliku
  15. {
  16. move_uploaded_file($img_tmp,'galeriak/'.$pic_name);
  17. chmod('galeriak/'.$pic_name,0755);
  18.  
  19. }
  20.  
  21. // tutaj tworzenie miniatury
  22. //$fname - folder w ktorym jest obrazek
  23. //$Image - nazwa obrazka
  24. //$MaxSize - maksymalny rozmiar
  25.  
  26. function tworzminiature($fname,$Image,$MaxSize){
  27. $filename = sprintf("%s/%s",$fname,$Image);
  28. $filename1 = sprintf("%s/tn/tn_%s",$fname,$Image);
  29. if (file_exists($filename1)) return;
  30. if (!file_exists("$fname/tn")) mkdir ("$fname/tn", 0777);
  31. $im = imagecreatefromjpeg($filename);
  32. $w = imageSX($im);
  33. $h = ImageSY($im);
  34. if ($w > $h)
  35. {
  36. $nw = $MaxSize;
  37. $nh = $h*$nw/$w;
  38. }else {
  39. $nh = $MaxSize;
  40. $nw = $w*$nh/$h;
  41. }
  42. $im1 = imagecreatetruecolor($nw,$nh);
  43. ImageCopyResized($im1,$im,0,0,0,0,$nw,$nh,$w,$h);
  44. ImageJpeg($im1,$filename1);
  45. ImageDestroy($im);
  46. ImageDestroy($im1);
  47. }
  48. //wywolanie funkcji tworzacej miniature
  49. tworzminiature("galeriak/",$pic_name,75);
  50.  
  51.  
  52. // tutaj zapytanie do bazy
  53.  
  54.  
  55.  
  56.  
  57.  
  58. $query = "INSERT INTO zdjeciaklubowiczow VALUES ('', '$valid_user', '', '$pic_name')";
  59. mysql_query($query) or die ("Wystapiły problemy przy zapisywaniu danych");
  60.  
  61.  
  62. echo "Dodano zdjęcie: ";
  63. echo $pic_name;
  64.  
  65.  
  66. //wyswietlanie wyniku
  67.  
  68.  
  69. ?>
  70.  



formularz:

<form action="index.php?g" method="post" enctype="multipart/form-data">
<p><input type="file" name="img" SIZE="30"/></p>
<p><input type="submit" name="upload_submit" value="Wyślij zdjęcie" /></p></form>


cała noc nad tym myslałem bo nie przyjmuje mi zdjęć wiekszych tylko pokazuje sie ten komunikat dziwny :\ jeszce jest dziwny inny problem :/ al eto w nastepnej odpowiedzi napisze by sie nie myliło :/
mortus
Przecież parametr $fname zawiera ciąg znaków "galeriak/", a Ty w linii 30 łączysz ten ciąg znaków z ciągiem "/tn" i powstaje "galeriak//tn".
dudziec
zaraz nie rozumiem ....
no dobrze jak uzyje kod wywolania funkcji:

tworzminiature("galeriak",$pic_name,75);

to chyba juz ten bład likwiduje?

a tu nic :/

a ma zapisywac zdjecia do katalogu:

galeriak/$pic_name - zdjecia duze - czyli bez zmiany o nazwie $pic_name

galeriak/tn/tn_$pic_name - zdjecie miniaturka


czemu małe obrazki zapisuje a z duzymi wyskakuje bład?questionmark.gifquestionmark.gifquestionmark.gif?


nie wiem moze jakies inne rozwiazanie jest na to by uzytkownik wysłał plik graficzny zdjecie na serwer, utworzył miniaturke , jakas funkcja inna - ja pierwszy raz robie cos z grafika :/ moze jakas pomoc bo ja wymiekam :/ od wczoraj nie spie , szukam i nic bez skutku:/
mortus
W php.ini jest taka dyrektywa upload_max_filesize (określa maksymalny rozmiar wgrywanego pliku), może ona nie przepuszcza Ci dużych plików.
dudziec
miałem tam ustawione tak:

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M


dałem na :

; Maximum allowed size for uploaded files.
upload_max_filesize = 12M

to chyba duzo?questionmark.gif


a pojawiło sie komunikat :


Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 14592 bytes) in D:\VertrigoServ\www\radio\script\g.php on line 30



zdjęcie niecałe ma 3 MB które chce wysłac


VGT
Teraz Twoim problemem jest kolejna dyrektywa z php.ini: memory_limit

plik ma 3MB, ale domyslam sie ze to jpg o sporej rozdzialce, wiec zwyczajnie nie starcza pamieci na jego obrobke.
dudziec
a jak to mam obejsc?questionmark.gif powiedzmy ze chcem by waga zdjecia maiła 0,5 MB i ani wiecej questionmark.gifquestionmark.gif jak to wkomponowac w kod - jak zastosowac to questionmark.gif? questionmark.gif?
VGT
Cytat(dudziec @ 1.05.2010, 17:14:51 ) *
a jak to mam obejsc?questionmark.gif


Tak samo jak porzednie - przestawic na wieksze jesli masz mozliwosc.
dudziec
w pliku php.ini nie widze memory_limit :|
szukałem nawet memory i nie ma tam nic prócz

; If on, the contents of text and byte blobs are dumped to a file instead of
; keeping them in memory.
ifx.blobinfile = 0


to wszystko ze słowem memory :|
VGT
opcja a:
dopisz
np.: memory_limit = 32M

opcja b:
nigdy nie korzystalem z tego vertrigoserv, ale:
google -> vertrigoserv memory limit

i np pierwszy link:
http://my.opera.com/ekoprabowo/blog/
dudziec
nic ton ie daje :/ poddaje sie :/ pomózcie nic juz nie wymysle :/...


chyba ze mam sknocony skrypt :/ no ale czemu cos tam wysyła??

ogolnie juz wysiadam normalnie :|

Bo teraz nie wiem czy jest bład skryptu czy u mnie - czy ktos ma jakis skryp do przetestowania bym mogł przetestowac czy wszystko jest u mnie dobrze ?

a potrzebuje tego bo stoje w miejscu :/

A juz 2 dni robie i nie umiem sobie poradzic :/
głowa peka, 2 nieprzespane noce :/ i do tego ...niedosyt :/
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.