我正在处理图像上传脚本并遇到了这个问题。使用 ImageMagick 我会用完调整大小和上传图像的时间,所以我插入了这两行:
set_time_limit(120);
ini_set('max_input_time', 120);
然而,现在脚本永远不会结束。即使它可以正常上传、调整大小和插入数据库,它也会持续运行页面。这些是否以某种方式相互冲突?它甚至超过了我设置的时间限制 120 秒。
编辑:这是脚本的完整图像编辑部分,它适用于 1 或 2 张图像,但当我放入更多(从而使其花费更长的时间)时,它不会。
set_time_limit(120);
ini_set('max_input_time', 120);
$resource = NewMagickWand();
MagickReadImage($resource,$image);
MagickSetImageCompressionQuality( $resource, 100);
$resource = MagickTransformImage($resource,'0x0','660x500');
MagickWriteImage($resource, $image);
DestroyMagickWand($resource);
这是我用来读取所有要上传的图像的代码:(reSizePic 是调用上述代码的函数)
$numberImages = count($_FILES['galFile']['name'])-1;
for($i=1;$i<=$numberImages;$i++)
{
$imageName = $_FILES['galFile']['name'][$i];
$imageType = $_FILES['galFile']['type'][$i];
$imageSize = $_FILES['galFile']['size'][$i];
$imageTemp = $_FILES['galFile']['tmp_name'][$i];
$imageError = $_FILES['galFile']['error'][$i];
//Make sure it is an image
if(in_array(end(explode(".", $imageName)), $allowed))
{
//Where to upload image to
$uploadFile = $uploadDir . $imageName;
if (file_exists($uploadFile))
{
//What to do if file already exists
//Append random number to the end
$front = explode(".", $imageName);
$randomNum = rand(1,100);
$front[0] = $front[0].$randomNum;
$imageName = $front[0].".".$front[1];
$uploadFile = $uploadDir . $imageName;
}
if(move_uploaded_file($imageTemp,$uploadFile))
{
//Add $imageName to DB
$query = "INSERT INTO galleryImages VALUES(\"0\",\"$lastInsert\",\"$imageName\",\"$i\")";
mysql_query($query);
reSizePic($uploadFile);
}
}
列维