【问题标题】:File upload PHP JPG issues文件上传 PHP JPG 问题
【发布时间】:2013-02-18 20:43:40
【问题描述】:

我在使用文件上传 HTML 表单和一些 PHP 来处理输入时感到困惑。在表单中,我有两个图像文件选择。上传 .png 文件时,我可以使用 $_FILES 获取文件大小等。但是当我尝试上传一个 .jpg 文件时,我无法得到比文件名更多的信息,没有大小、类型、临时名称。

当同时上传两个文件时,.png 和 .jpg,一切都适用于 .png 文件,但不适用于 .jpg。

我在这里缺少什么?将 $_FILES 与 .jpg 文件类型或我不知道的其他内容一起使用时是否有任何“限制”?

示例代码:

    if (isset($_FILES['upload1'])) {            // JPG FILE
        $fileName1 = $_FILES['upload1']['name'];
        $fileSize1 = $_FILES['upload1']['size'];
        echo $fileName1;
        echo $fileSize1;
    }
    if (isset($_FILES['upload2'])) {            // PNG FILE
        $fileName2 = $_FILES['upload2']['name'];
        $fileSize2 = $_FILES['upload2']['size'];
        echo $fileName2;
        echo $fileSize2;
    }

输出类似(不带括号):

"filename1.jpg" "0" "filename2.png" "12313"

print_r($_FILES) 输出:
数组 (
[upload1] => 数组 (
[name] => volvo1.png
[类型] => 图片/png
[tmp_name] => C:\wamp\tmp\php14AD.tmp
[错误] => 0
[尺寸] => 6380 )

[upload2] => 数组 (
[名称] => IMG0379.JPG
[类型] => [tmp_name] =>
[错误] => 1
[大小] => 0)
)

【问题讨论】:

  • print_r($_FILES) 并检查整个数组。
  • 检查上传过程中是否有错误。应该有一个值表明这一点。 var_dump($_FILES); 查看所有内容。
  • 可能是 JPG 太大了。 $_FILES['upload1']['error']; 中的任何内容?
  • 啊哈,发现错误1表示文件大小错误。
  • @halfer - 很遗憾我不能再做两天了。有空我会回来处理的。

标签: php file file-upload upload jpeg


【解决方案1】:

问题已解决,对于那些可能遇到相同问题的人,解决方法就像更改 php.ini 中的 upload_max_filesize 一样简单。

【讨论】:

    【解决方案2】:

    Markus 对,更改 /etc/php/7.3/apache2/php.ini 中的 upload_max_filesize

    ; http://php.net/upload-max-filesize
    upload_max_filesize = 200M
    

    如果仍然没有,也许安装这些库

    apt-get install -y libpng-dev 
    apt-get install -y    libwebp-dev 
    apt-get install -y    libjpeg62-turbo-dev 
    apt-get install -y    libjpeg-dev 
    apt-get install -y    libpng-dev libxpm-dev 
    apt-get install -y    libfreetype6-dev
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多