文件上传PHP JPG问题


File upload PHP JPG issues

我在使用文件上传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] => Array (
[name] => volvo1.png
[type] => image/png
[tmp_name] => C:'wamp'tmp'php14AD.tmp
[error] => 0
[size] => 6380)

[upload2] => Array (
[name] => IMG0379.JPG
[type] => [tmp_name] =>
[error] => 1
[size] => 0
)

问题解决了,对于那些可能遇到同样问题的人,解决方案很简单,只需在php.ini中更改upload_max_filesize。

php.ini可以在

目录下找到
  1. Ubuntu:/etc/php/5.6/apache2/php.ini
  2. 窗口:C: ' xampp ' php ' php . ini中
  3. 麦克:/usr/local/etc/php/8.1/php.ini

或者你甚至可以这样做PHP -i | grep PHP .ini

修改/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