我正在为网站创建一个简单的内容管理系统,我想上传两个图像,一个是缩略图,另一个是1920 x 5036像素。
我有这个:
HTML(upload.html):
<form action="upload.php" method="post" enctype="multipart/form-data">
<p>Pictures:
<input type="file" name="img[]" />
<input type="file" name="img[]" />
<input type="submit" value="Send" />
</p>
</form>
PHP(upload.php):
$uploaddir = 'images/';
foreach ($_FILES["img"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK){
$tmp_name = $_FILES["img"]["tmp_name"][$key];
$name = $_FILES["img"]["name"][$key];
move_uploaded_file($tmp_name, "images/$name");
}
}
的php.ini:
memory_limit的= 500M
max_input_time设置= 300
的post_max_size = 40M
的upload_max_filesize = 10M
max_file_uploads = 10
我上传的第一张图片有下一个规格:
名称:project02_thumb
1900 x 1307 px
1.69 MB
该图像上传,并移动到正确的文件夹。
第二张图片规格:
名称:project02
1920 x 5036 px
3.19 MB
第二张图片永远不会上传。我还能做些什么?
我屏幕上没有任何错误。
解决方案
问题不在于高分辨率图像。
我必须将 upload_max_filesize 和 post_max_size 更改为 40M
在所有PHP.INI文件中。
使用xampp v3.2.2
在C:\ xampp \ php中有3个带有php.ini名称的文件。
的php.ini
的php.ini-发展
php.ini中生产
答案 0 :(得分:0)
HTML表格:
<input name="files[]" type="file" multiple="multiple" />
PHP脚本:
set_time_limit(0);
error_reporting(E_ALL); //testing purpose
$total = count($_FILES['files']['name']); //count files
for($i=0; $i<$total; $i++) { //loop each file
$tmp_loc = $_FILES['files']['tmp_name'][$i]; //get temp path
if ($tmp_loc!= ""){
$new_loc = "./<<directory>>/" . $_FILES['files']['name'][$i]; //setup new location
if(move_uploaded_file($tmp_loc, $new_loc)) //move file temp dir to new location
}
}
}
答案 1 :(得分:0)
使max_input_time = -1,即更多时间限制
答案 2 :(得分:0)
也许是max_execution_time
这将设置允许脚本在解析器终止之前运行的最长时间(以秒为单位)
默认值由30