我有一个非常好的图像上传表单!对我来说…似乎其他人都会犯错!这到底是怎么回事?(我知道我的编程很草率,我不是在寻求批评,只是一个快速解决方案!请帮忙。)
形式:
<form enctype="multipart/form-data" action="imgupload.php" method="POST">
Image upload:
<input name="uploadedfile" type="file" />
<input type="submit" value="Upload" />
</form>
表单处理程序:
<?php
if (($_FILES["uploadedfile"]["type"] == "image/jpeg")
&& ($_FILES["uploadedfile"]["size"] < 4000000))
{
// Where the file is going to be placed
$target_path = "/images/";
/* Add the original filename to our target path.
Result is "images/filename.extension" */
//////////RENAME FILE/////////////
$filetype = pathinfo($_FILES['uploadedfile']['name'], PATHINFO_EXTENSION);
$oldtitle = $_FILES["uploadedfile"]["name"];
$take_file_extension = substr($oldtitle, 0, strrpos($oldtitle, '.'));
$title = "jeep_".$take_file_extension.".".$filetype;
$target_path = $target_path . $title;
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The picture ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded<br><br>----------------<br><br>";
echo "Upload: " . $_FILES["uploadedfile"]["name"] . "<br>";
echo "Size: " . ($_FILES["uploadedfile"]["size"] / 1024) . " Kb<br>";
}
}
else
{
echo "There is a file size limit of 1MB. Only JPG's can be uploaded!";
}
?>
每次对我有效,其他人都会收到"文件大小限制为1MB。只能上传JPG!"错误。
即使您的代码被设置为接受4MB以下的图像,您也必须通过编辑一些PHP.ini设置的值来告诉PHP允许这种大小的图像:
-
上传_max_filesize
-
post_max_size
您之所以只能上传.jpg图像,是因为您的条件仅限于.jpg:
if (($_FILES["uploadedfile"]["type"] == "image/jpeg")
尝试切换:
switch ($_FILES["uploadedfile"]["type"]) {
case 'image/jpeg':
case 'image/png':
break;
default:
throw new Exception('Invalid image type');
}
我想知道这是否是php.ini中的max_execution_time。请尝试更改为30以上。
http://www.php.net/manual/en/info.configuration.php#ini.max-执行时间
较慢(较低带宽)的连接可能需要更长的时间才能上传较大的图像,从而导致出错,您的连接可能会更快。