2

問題は、php 5.4 のアップロード進行状況機能が機能していないように見えることです。私が何をしても、セッション変数は入力されません。

  • session.upload-progress 変数が読み込まれ、設定されます。
  • file_uploads が有効
  • upload_max_filesize を 2000M に設定
  • post_max_size を 2000M に設定
  • upload_tmp_dir 書き込み可能
  • フォームの隠し変数が設定され、入力要素の前にあり、その名前は次のとおりです。ini_get("session.upload_progress.name")

これまでのところ、dotdeb php 5.4.14 と apache2 と php5 モジュールを使用した Debian スクイーズでは成功していません。

apc rfc1867 フックも確認しました。うまくいきません。uploadprogress 拡張機能と同じです。何か案は?

使用例

アップロードの進行状況: http://www.ultramegatech.com/2010/10/create-an-upload-progress-bar-with-php-and-jquery/

apc の場合: http://blog.famillecollet.com/post/2011/01/12/File-upload-progress-in-PHP-with-APC

PHP 5.4 の場合: https://github.com/chemicaloliver/PHP-5.4-Upload-Progress-Example

php 5.4 インライン (アップロードが開始された後、別のタブから同じファイルを呼び出すだけです...):

アップロード.php:

<?
session_start();
var_dump($_SESSION[ ini_get("session.upload_progress.name") . "123"]);

?>

<form action="upload.php" method="POST" enctype="multipart/form-data">
 <input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="123" />
 <input type="file" name="file1" />
 <input type="file" name="file2" />
 <input type="submit" />
</form>
4

2 に答える 2

2

地獄、nginxが犯人でした。プロキシとして使用する場合、最初にアップロード全体を保存し、ファイル全体が到着すると、それを Apache または使用する他のサーバーに送信します。したがって、アップロードの進行状況はありません。

于 2013-05-02T08:38:41.963 に答える
1

nginx 1.7.11 には、アップロードのバッファリングをオフにするオプションがあります。

機能: 「proxy_request_buffering」、「fastcgi_request_buffering」、「scgi_request_buffering」、および「uwsgi_request_buffering」ディレクティブ。

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_request_buffering http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_request_buffering

このオプションを使用すると、進行状況をアップロードしながら作業できます。

于 2015-03-27T08:43:19.600 に答える