Autor Zpráva
muflik
Profil *
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
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 *
AM_: tu jsem opsal z manuálu http://www.php.net/manual/en/features.file-upload.errors.php :p ale
echo $_FILES['obrazek']['error']
nic nevypíše :?
muflik
Profil *
zapoměl jsem do formuláře přidat
enctype="multipart/form-data"
nemám pro sebe slov :x

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0