【问题标题】:Cannot upload images with more than 2000px height无法上传高度超过 2000 像素的图片
【发布时间】:2016-10-07 07:44:33
【问题描述】:

我正在为网站创建一个简单的内容管理系统,我想上传两张图片,一张是缩略图,另一张是 1920 x 5036 像素。 我有这个:
HTML(上传.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(上传.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
最大输入时间=300
post_max_size=40M
upload_max_filesize=10M
max_file_uploads=10


我上传的第一张图片有以下规格:
名称:project02_thumb
1900 x 1307 像素
1.69 MB

该图像已上传,并移至正确的文件夹。


第二张图片规格:
名称:project02
1920 x 5036 像素
3.19 MB

第二张图片永远不会上传。我还能做什么?

我没有在屏幕上看到任何错误。

解决方案

问题不在于高分辨率图像。
我不得不将 upload_max_filesizepost_max_size 更改为 40M 在所有 PHP.INI 文件中。
使用 xampp v3.2.2
在 C:\xampp\php 中有 3 个文件名为 php.ini。


php.ini
php.ini-开发
php.ini-生产

【问题讨论】:

  • 你在使用 Wamp 服务器吗?
  • 你检查过错误日志吗?
  • 你的上传速度够快吗?你的上传不是被 max_execution_time 停止了吗?
  • 只上传第二张图片(project02)并检查图片是否上传。
  • @Jens 不使用 xampp v3.2.2

标签: php html image-uploading image-upload


【解决方案1】:

使 max_input_time=-1 即使时间限制更多

【讨论】:

  • 你能打印吗 ($_FILES["img"]["error"]);exit;当您上传该图片时,您遇到了什么样的错误。
【解决方案2】:

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

    }
  }
}

【讨论】:

  • 它和我使用的脚本一样。不过谢谢!
  • 查看 phpinfo 并告诉我们您的服务器的最大执行时间是多少?
【解决方案3】:

也许是max_execution_time
这将设置脚本在被解析器终止之前允许运行的最长时间(以秒为单位)。
默认值由30设置

【讨论】:

  • 我已经改成“max_execution_time=300”了,忘了说。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-15
  • 1970-01-01
  • 1970-01-01
  • 2019-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多