0

ファイルのアップロード中に「ファイルのアップロード」というメッセージをエコーし​​たいのですが、メッセージはアップロードが完了した後にのみエコーされます。これを行う別の方法はありますか?

if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))

  {
     echo "file uploading";
     header("location:somewhere.php?uploaded")
  } 

else echo "oops!";
4

3 に答える 3

3

ファイルがアップロードされた後、PHPスクリプトが実行されるため、ファイルがアップロードされた後にのみ印刷されます。

解決策は PECLアップロード プログレスパッケージを使用することですが、これは拡張機能を PHP にインストールすることを意味しますが、これはホストで実行できる場合とできない場合があります。

于 2013-01-12T20:10:22.183 に答える
3

あなたが今直面しているのは、何かを非同期的に行う必要性です。同期はあなたが今行っていることです。つまり、新しいリクエストを発行して画像をアップロードします。これにより、リクエストのにのみメッセージを表示できます。

バックグラウンドで画像をアップロードし、AJAXjQueryを使用して、読み込み中の gif などをページに表示できます。これにより、アップロードにメッセージを表示できます。

jQuery の優れた紹介については、新しい boston からのこれらのビデオを確認してください。特に AJAX については、エピソード 101 以降をご覧ください。

于 2013-01-12T20:15:03.023 に答える
1

初めにすること。location header();関数は(のL場合は大文字Location:)である必要があります。header() 内では常に絶対 URI を使用します。お気に入り..

header("Location: the_location_url");わかった?良い!

ここで、表示については、ここに示すように、その中に秒​​数を入力して進行中のプロセスを遅らせる関数をLoading..使用する必要がありますsleep();sleep(05);

さて、あなたのコードについて:

if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))

  {
     echo "file uploading";
      sleep(05);
     header("Location: the_location_url")
  } 

else echo "oops!";
于 2013-01-12T20:36:32.937 に答える