1

入力を処理するためにファイルアップロードHTMLフォームといくつかのPHPを操作しているときに混乱しています。フォームでは、画像用に2つのファイル選択があります。.pngファイルをアップロードするとき、$_FILESを使用してファイルサイズなどを取得できます。しかし、.jpgファイルをアップロードしようとすると、ファイル名、サイズ、タイプ、一時的な名前以外は取得できません。

また、.pngと.jpgの2つのファイルを同時にアップロードすると、すべてが.pngファイルに対して機能しますが、.jpgに対しては機能しません。

ここで何が欠けていますか?「.jpgファイルタイプで$_FILESを使用する場合の制限、または私が気付いていない他の何か」はありますか?

コード例:

    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] =>配列(
[名前] =>volvo1.png
[タイプ]=>image / png
[tmp_name] => C:\ wamp \ tmp \php14AD.tmp
[エラー] =>0
[サイズ]=>6380)

[upload2] =>配列(
[名前] =>IMG0379.JPG
[タイプ]=>[tmp_name]=>
[エラー]=>1
[サイズ]=>0)

4

2 に答える 2

3

問題は解決しました。同じ問題が発生する可能性がある場合、解決策はphp.iniのupload_max_filesizeを変更するのと同じくらい簡単です。

于 2013-03-04T18:03:20.333 に答える
0

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
于 2020-05-28T08:00:31.007 に答える