| 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: 13 let
|
|||
0