0

POSTコマンドとFTPを介してサーバーにファイルを保存するための動作するPHPアップロードスクリプトを設計しました。それはうまく機能しています-唯一の問題は、ファイルのアップロード中に「お待ちください」というメッセージを表示する方法を理解するのに時間がかかっていることです。スクリプトの上にHTMLを追加しようとしましたが、ファイルが既にアップロードされた後(またはエラーが発生した後)にのみテキストが表示されます。(ある種の)機能するのは、onClick htmlフォーム設定を使用してJavascriptポップアップウィンドウを追加することだけです...しかし、それは実際には理想的ではなく、スクリプトを使用している人はポップによって混乱する可能性があります- POST / FTPプロセスがまだ進行中のときに、メインウィンドウから離れて移動してみてください。

私はPHPに比較的慣れていないので、明らかな解決策があると感じます...残念ながら、これまでのところ、解決策を見つけることができないようです。何か案は?私の無知を許してください!:)

ありがとう-

4

3 に答える 3

2

これはクライアント側で行う必要があります。ファイル全体がアップロードされるまで、PHP インタープリターは呼び出されません。したがって、2 MB のファイルがある場合、スクリプトは、リクエストを介して完全に送信され、一時ファイルに保存されるまで開始されません。

フォームの送信を監視してメッセージを表示する JavaScript をお勧めします。jquery を使用すると、次のようになります。

$('form').on('submit', function() {
  $('#loading').show();
});
于 2012-05-23T15:40:11.907 に答える
1

PHP 5.4を使用している場合は、新しいファイルのアップロードの進行状況の追加を試してみることができます。これに関する良い記事があります:

http://chemicaloliver.net/programming/php-5-4-file-upload-progress-and-html5-progress-bars/

于 2012-05-23T15:45:07.950 に答える
0

PHP 5.4には、セッションアップロードの進行状況機能が組み込まれています。元々はphp5.3にパッチが適用されていました。これがそのマニュアルですhttp://php.net/manual/en/session.upload-progress.php

session.upload_progress.enabledがtrue(PHP 5.4ではデフォルトであり、おそらくそれ以降)であり、アップロード中に$ _POST [session.upload_progress.name]が送信されると、ファイル転送に関する情報が$_SESSIONスーパーグローバルで利用可能になります。配列。

これは、$ _ SESSIONスーパーグローバルとjavascriptを使用して、ファイルをアップロードするためのプログレスバーをレンダリングする優れたチュートリアルです。http://phpmaster.com/tracking-upload-progress-with-php-and-javascript/

于 2012-05-23T15:45:01.857 に答える