Autor | Zpráva | ||
---|---|---|---|
Looser Profil * |
#1 · Zasláno: 16. 10. 2012, 18:04:08
Zdravim,
mam zvláští (alespoň pro mě) problém s nahráváním obrázků na server pomocí scriptu (viz. osekaná verze níže). Když jsem tento script vytvořil a asi před rokem nahrál na svůj hosting na Savana.cz tak bez problému fungoval ale asi po půl roce z ničeho nic přestal fungovat a hlásil hned několik chyb (za celou dobu jsem zdrojovy kod nijak neupravoval). Poté jsem zkusil tento script pustit na svem PC kde mam nainstalovan Apache2triad a vše fungovalo správně proto vůbec netušim v čem by mohla být chyba. Za čas jsem zkoušel i jiný hosting Wedos.cz ale na něm to taky nefunguje proto vás chci poprosit o radu nebo jestli jste se s tím nekdo taky nesetkal. Script jsem umistil také sem www.krbyberka.cz/exam/upload.php pokud by to pomohlo najit problem. Chybové hlášky: Warning: copy() [function.copy]: open_basedir restriction in effect. File() is not within the allowed path(s): (/data/web/virtuals/25326/virtual) in /data/web/virtuals/25326/virtual/www/domains/krbyberka.cz/exam/upload.php on line 22 Warning: rename(./,.//1350403202.) [function.rename]: Device or resource busy in /data/web/virtuals/25326/virtual/www/domains/krbyberka.cz/exam/upload.php on line 23 Warning: getimagesize(.//1350403202.) [function.getimagesize]: failed to open stream: No such file or directory in /data/web/virtuals/25326/virtual/www/domains/krbyberka.cz/exam/upload.php on line 25 Warning: Division by zero in /data/web/virtuals/25326/virtual/www/domains/krbyberka.cz/exam/upload.php on line 29 Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /data/web/virtuals/25326/virtual/www/domains/krbyberka.cz/exam/upload.php on line 34 Warning: imagecopyresampled() expects parameter 1 to be resource, boolean given in /data/web/virtuals/25326/virtual/www/domains/krbyberka.cz/exam/upload.php on line 35 Kód: <?php if ($_GET["act"] === "pridat"){ $dir = "./"; // definování výslednéhoadresáře if(!file_exists($dir)){ // když neexistuje složka kategorie galerie mkdir ($dir); chmod ($dir, 0777); } if (!is_writable ($dir)){chmod ($dir, 0777);} // když není složka kategorie určena pro zápis if (!is_writable ("./")){chmod ("./", 0777);} // když není složka admin určena pro zápis if($file_type == 'image/gif'){$typ_souboru = 'gif';} elseif(($file_type == 'image/jpeg') or ($file_type == 'image/pjpeg')){$typ_souboru = 'jpg';} $cislo_screenu = time(); $obr = $dir."/".$cislo_screenu.".".$typ_souboru; // název a umístění nového obrázku $nahled = $dir."/".$cislo_screenu."-sml.".$typ_souboru; // název a umístění náhledu obrázku if (file_exists($file_name.$file_type)){print "obrázek již s daným názvem existuje!";} else{ copy($file, "./".$file_name); // překopíruji obrázek z přechodného adresáře do složky admin rename("./".$file_name, $obr); // zkopíruji obrázek ze složky admin do cílové složky pod novým názvem $size = GetImageSize($obr); $width = $size[0]; // šířka uploadovaného obrázku $heigh = $size[1]; // výška uploadovaného obrázku $velx = $sirka_obr; // šířka náhledu obrázku $vely = ($heigh/$width)*$velx; // výška náhledu obrázku if ($typ_souboru == "jpg"){$img_in = imagecreatefromjpeg($obr);} // načtu velký obrázek elseif($typ_souboru == "gif"){$img_in = imagecreatefromgif($obr);} // načtu velký obrázek $img = ImageCreateTrueColor($velx,$vely); // vytvořím TrueColor obrázek s rozměry náhledu imagecopyresampled($img,$img_in,0,0,0,0,$velx,$vely,$width,$heigh); // nakopíruju originál do náhledového formátu if($typ_souboru == "jpg"){ImageJpeg($img,$nahled,75);} //uložím obrázek elseif($typ_souboru == "gif"){Imagegif($img,$nahled);} //uložím obrázek } } ?> <h2>Přidat nový obrázek</h2> <form enctype="multipart/form-data" action="upload.php?act=pridat" method="post"> <input type="file" name="file" id="file" /> <input type="submit" value="Vložit" /> </form> |
||
Rellik Profil |
No řekl bych, že je to funkcí copy() použij move_uploaded_file()
Jo a ještě sem si všiml, že složky kontroluješ jako soubory. Pro kontrolu zda existuje nějaká složka je funkce is_dir() |
||
Looser Profil * |
#3 · Zasláno: 16. 10. 2012, 19:41:21
tak jsem zkusil použít funci move_uploaded_file() místo copy() ale furt to na tom webhostingu nefunguje
|
||
Davex Profil |
#4 · Zasláno: 16. 10. 2012, 20:49:02
Looser:
Kde se berou hodnoty proměnných, především $file , a co obsahují?
|
||
Časová prodleva: 12 let
|
0