1

画像をphpスクリプトにアップロードしようとしています。永続的ではないバグがあり、アップロードされた画像の一部のファイル サイズが 0 になります。ログ ファイルに _FILES 配列を出力しようとしましたが、エラー コードが 0 であることが示されていますが、これで問題ありません。 .

これらの行:

foreach($_FILES['image_file'] as $key => $val){
      error_log(date('j/n/o H:i:s')." ". $key ." => ".$val. "\n", 3,$log_path);
    }

ログファイルでこれらを教えてください:

  1. 2012/03/10 12:12:54 名前 => 59175248636.jpg
  2. 2012/03/10 12:12:54 タイプ => 画像/jpeg
  3. 2012 年 3 月 10 日 12:12:54 tmp_name => C:\WINDOWS\Temp\php411F.tmp
  4. 2012 年 3 月 10 日 12:12:54 エラー => 0
  5. 2012 年 3 月 10 日 12:12:54 サイズ => 0

ログ ファイルから読み取ることができるように、このスクリプトは Windows マシン上で実行されますが、私は Windows マシンについてほとんど知りません。php.ini で、post_max_size を 10M に変更し、upload_max_size を 10M に変更しました。

私はこの問題に驚いています。自分のデバイスからテストすると問題なく動作しますが、何らかの理由でテスターがテストすると失敗します。

4

2 に答える 2

0

編集 - これを試してください:

セットアップで作業するには、 $_FILES['file'] を $_FILES['image_file'] に変更する必要があると思います。読みやすくするために、以下のように残しました...

if ($_FILES['file']['error'] === UPLOAD_ERR_OK && $_FILES['file']['size'] > 0){

   ... upload was successful ...

}elseif($_FILES['file']['error'] === UPLOAD_ERR_OK && $_FILES['file']['size'] == 0){

   die("Upload failed, random upload issue... please try again);
   // change this error to something more useful... (leave this error in for testing)

}else {

   die("Upload failed with error code " . $_FILES['file']['error']);

}

これはランダムなファイルサイズの問題を解決しませんが、コード/プロセスを続行できるようにします。アップロードの失敗として扱い、ユーザーに再試行するよう伝えます...

Marc Bが投稿したこのstackoverflow 投稿のコードを使用

于 2012-10-03T11:37:52.323 に答える