嗨,我從教程中選擇了這個。 Link here試試幫我理解這一點。上傳大圖片時的問題
我想知道編碼器是如何嘗試控制圖像上傳的大小的。 (我在代碼中看到其他地方明顯限制了尺寸,例如
($_FILES["file"]["size"] < 20000)
)爲什麼我問上述問題的原因是當我上傳一個較小的圖像,這工作正常,但更大的圖像給出了一系列的警告!
謝謝你的幫忙。
代碼
<?php
function getExtension($str)
{
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
$image =$_FILES["imagefile"]["name"];
$tempext = getExtension($image);
$extfile= mt_rand().".".$tempext;
$uploadedfile = $_FILES['imagefile']['tmp_name'];
if ($extfile)
{
$filename = stripslashes($extfile);
$extension = getExtension($filename); // return the type of image
$extension = strtolower($extension); // convert result to lowercase
if (($extension != "jpg") && ($extension != "jpeg")
&& ($extension != "png") && ($extension != "gif"))
{
$errors=1;
}
else
{
$size=filesize($_FILES['imagefile']['tmp_name']);
if($extension=="jpg" || $extension=="jpeg")
{
$uploadedfile = $_FILES['imagefile']['tmp_name'];
$src = imagecreatefromjpeg($uploadedfile);
}
else if($extension=="png")
{
$uploadedfile = $_FILES['imagefile']['tmp_name'];
$src = imagecreatefrompng($uploadedfile);
}
else
{
$src = imagecreatefromgif($uploadedfile);
}
list($width,$height)=getimagesize($uploadedfile);
$newwidth=600;
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($tmp,$src,0,0,0,0, $newwidth, $newheight, $width, $height);
$newwidth1=185;
$newheight1=($height/$width)*$newwidth1;
$tmp1=imagecreatetruecolor($newwidth1,$newheight1);
imagecopyresampled($tmp1,$src,0,0,0,0, $newwidth1, $newheight1, $width, $height);
$filename = "upload/". $extfile;
$filename1 = "upload/thumbs/". $extfile;
$etest1=imagejpeg($tmp,$filename,100);
$etest2=imagejpeg($tmp1,$filename1,100);
imagedestroy($src);
imagedestroy($tmp);
imagedestroy($tmp1);
}
}
?>
有一個文件上傳最大設置。檢查你的php.ini和谷歌。 – Jimbo
@Jimbo我更新了一個鏈接。一個php.ini似乎並不存在。你能告訴我,我的方法應該是什麼?謝謝 –
不要在這裏連接w3fools廢話。不要毀掉新手。 – Jimbo