Autor | Zpráva | ||
---|---|---|---|
muflik Profil * |
#1 · Zasláno: 2. 9. 2010, 13:24:53
Dobrý den, snažím se zprovoznit upload obrázku, ale z nějakého důvodu mi to nejde...
mám zjednodušený form: <form action='' method='post'> obrázek (MAX 3MB): <input type='file' name='obrazek' value='nahrat'> <input type='hidden' name='MAX_FILE_SIZE' value='3000'> <input type='submit' name='submit' value='odeslat'> </form> pak mám error funkci, kterou jsem přidal abych zjistil co se děje (ta hází 'Unknown upload error'): if (isset($_POST['submit'])){ function file_upload_error_message($error_code) { switch ($error_code) { case UPLOAD_ERR_INI_SIZE: return 'The uploaded file exceeds the upload_max_filesize directive in php.ini'; case UPLOAD_ERR_FORM_SIZE: return 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'; case UPLOAD_ERR_PARTIAL: return 'The uploaded file was only partially uploaded'; case UPLOAD_ERR_NO_FILE: return 'No file was uploaded'; case UPLOAD_ERR_NO_TMP_DIR: return 'Missing a temporary folder'; case UPLOAD_ERR_CANT_WRITE: return 'Failed to write file to disk'; case UPLOAD_ERR_EXTENSION: return 'File upload stopped by extension'; default: return 'Unknown upload error'; } } if ($_FILES['obrazek']['error'] === UPLOAD_ERR_OK) echo "upload OK"; else echo $error_message = file_upload_error_message($_FILES['file']['error']); echo "<br>"; a konečně script který následuje na zpracování obrázku (vytvoří to 2obrázky, jejichž cestu pak v dalším kroku ukládám do databáze) hned první podmínka neplatí a skočí to na 'podporované formáty jsou pouze jpg a png': function uloz2obrazky ($jmeno) { $informace = $_FILES["$jmeno"]; $pripona = substr($informace["name"], -3); echo "pripona: $pripona"; //NIC NEVYPISE <------------------------------------------o if (strtolower($pripona)=="jpg" || strtolower($pripona)=="png"){ $filename = $informace["tmp_name"]; $MaxWidth = 133; $MaxHeight = 134; list($OrigWidth, $OrigHeight) = getimagesize($filename); $pw = $OrigWidth / $MaxWidth; $ph = $OrigHeight / $MaxHeight; if ($pw > $ph) {$p = $pw;} else {$p = $ph;} if ($p < 1) $p = 1; $NewWidth = (int)$OrigWidth / $p; $NewHeight = (int)$OrigHeight / $p; $image_p = imagecreatetruecolor($NewWidth, $NewHeight); $MaxWidth2 = 500; $MaxHeight2 = 500; list($OrigWidth2, $OrigHeight2) = getimagesize($filename); $pw2 = $OrigWidth2 / $MaxWidth2; $ph2 = $OrigHeight2 / $MaxHeight2; if ($pw2 > $ph2) {$p2 = $pw2;} else {$p2 = $ph2;} if ($p2 < 1) $p2 = 1; $NewWidth2 = (int)$OrigWidth2 / $p2; $NewHeight2 = (int)$OrigHeight2 / $p2; $image_p2 = imagecreatetruecolor($NewWidth2, $NewHeight2); if (strtolower($pripona)=="png"){ $image = imagecreatefrompng($filename); $image2 = imagecreatefrompng($filename); } elseif (strtolower($pripona)=="jpg"){ $image = imagecreatefromjpeg($filename); $image2 = imagecreatefromjpeg($filename); } imagecopyresampled($image_p2, $image2, 0, 0, 0, 0, $NewWidth2, $NewHeight2, $OrigWidth2, $OrigHeight2); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $NewWidth, $NewHeight, $OrigWidth, $OrigHeight); $uniqID = substr(uniqid(''), 0, 10); // u php4 musi bejt unigid('') jinak jen uniqid() asi if (strtolower($pripona)=="png"){ $cesta = "img/vina/nahled/vina-$uniqID.png"; $cesta2 = "img/vina/full/vina-full-$uniqID.png"; imagepng($image_p, "$cesta", 100); imagepng($image_p2, "$cesta2", 100); } elseif (strtolower($pripona)=="jpg"){ $cesta = "img/vina/nahled/vina-$uniqID.jpg"; $cesta2 = "img/vina/full/vina-full-$uniqID.jpg"; imagejpeg($image_p, "$cesta", 100); imagejpeg($image_p2, "$cesta2", 100); } imagedestroy($image_p); imagedestroy($image_p2); global $imgSmall; $imgSmall = $cesta; global $imgBig; $imgBig = $cesta2; } else {die("podporované formáty jsou pouze jpg a png");} } funkci pouštím jako uloz2obrazky("obrazek"); nevíte kde dělám chybu ?? upload jsem použil již několikrát, ale teď nad tím sedím už přes 2hodiny a netuším :( |
||
AM_ Profil |
#2 · Zasláno: 2. 9. 2010, 13:32:40
muflik:
„pak mám error funkci, kterou jsem přidal abych zjistil co se děje (ta hází 'Unknown upload error'):“ dal sis s ní docela pěknou práci, ale možná by stačilo vypsat chybový kód (echo $_FILES['obrazek']['error']) a pak zjistit, co znamená. |
||
muflik Profil * |
#3 · Zasláno: 2. 9. 2010, 13:43:43
AM_: tu jsem opsal z manuálu http://www.php.net/manual/en/features.file-upload.errors.php :p ale
echo $_FILES['obrazek']['error'] |
||
muflik Profil * |
#4 · Zasláno: 2. 9. 2010, 13:52:01
zapoměl jsem do formuláře přidat
enctype="multipart/form-data" |
||
Časová prodleva: 14 let
|
0