2009-03-17 18 views
8

これは前に尋ねられたと確信していますが、私は良い答えを見つけることができないので、ここで私は尋ねています...再び。 :)純粋なPHP/AJAXを使用して進捗状況をアップロードしますか?

HTML、JavaScript/AJAX、PHPを混在させてファイルアップロードの実際の進行状況を報告する方法はありますか?

SWFUploadのまたは類似を示唆誰への返信で

:私はそれについてのすべてを知っている

。その道を歩いている。私は100%の純粋な解決策を探しています(そして、はい、私はおそらくそれを得ることはありません知っている)。

答えて

1

をあなたのPHPにPECLパッケージを追加することができるしている場合は、uploadprogressパッケージがあります。

最も簡単な方法は、swfuploadを使用することです。

+0

私はこれを答えとしてマークしました。なぜなら、SWFUploadを使うのが最も簡単な方法だからです。 :) –

+4

simpelestはい、しかし、私はそれが "純粋なPHP/AJAX"の資格はないと思いますか? :) – Jacco

0

私は5にすることをお勧めしますFancyUploadそれは進歩バーのための本当にクールな解決策であり、それはphpにnecesarely添付されていません。 digitarald.deでのチェックアウトは、他のツール

歓声

1

ファイルアップロードの進捗状況を報告するために、HTMLやJavaScript/AJAX、およびPHPの唯一の混合物を使用してどのような方法は、ありますか?

Webサーバー搭載のPHPでプレーンなHTML(マルチパート/フォームデータ)ファイルのアップロードを監視する方法はわかりません。

データが入ってくるとmultipart/form-dataパーサーの進捗状況にアクセスする必要がありますが、PHPからのHTTPリクエスト本体へのアクセス方法($HTTP_RAW_POST_DATAおよびphp://input)は、 "enctype =" multipart/form-data ""では使用できません。

アップロードフィールドのFileListを使用して、Firefoxでスクリプトを使用したファイルをアップロードすると、ファイルの内容を取得して分割または非マルチパートで送信できます。しかし、まだ解析の仕事の束。

(あなたも、自分自身のHTTP処理コードを使用して、ファイルのアップロードを受信するための別のポート上のスタンドアロンサーバーとしてPHPスクリプトを実行することができます。しかし、それは比較的少ない利益のために仕事の膨大な量です。)

+0

正確に何が必要なのかをPECL拡張があります。 – Jacco

-1

IMHO、これはWebブラウザが解決すべき問題です。私たちはダウンロードの進捗状況を把握していますので、なぜアップロードしないのでしょうか?

は、例えば、このを見てみましょう:

http://www.fireuploader.com/

+0

この機能をすべての市長のブラウザに含めることができれば、非常に良い解決策になります。それまでは、現在の制限事項に取り組み、機能を自分で構築しなければなりません。 – Jacco

2

APCがインストールされている場合(この時点では、PHP6では標準であるはずです)、アップロードトラッキングを有効にするオプションがあります。 some documentationがあり、RasmusはYUIを使用するcode sampleと書いています。PHP/JavaScriptを使用してファイルのアップロードを監視

+0

これは私のサーバーがインストールされていないことを除いて完璧です、そしてスレッドセーフではないので、本当にポイントはありません。たぶんPHP6で。 ;) –

5

はPECL拡張モジュールを必要とします。ユーザーに進行状況を表示するために必要なコードの

uploadprogress

良い例です。

Uber Uploader

私が間違っていないのであれば、JQueryを使ってPHPと通信しています。


あなた自身でも書くことができます。複雑ではありません。

UPLOAD_IDENTIFIERという名前のアップロードフォームの最初の要素として隠し要素を追加します。

投票これは、次のことを含む配列を返すuploadprogress_get_info(UPLOAD_IDENTIFIER) を呼び出すPHPスクリプト:

 
time_start  - The time that the upload began (unix timestamp), 
time_last  - The time that the progress info was last updated, 
speed_average - Average speed in bytes per second, 
speed_last  - Last measured speed in bytes per second, 
bytes_uploaded - Number of bytes uploaded so far, 
bytes_total - The value of the Content-Length header sent by the browser, 
files_uploaded - Number of files uploaded so far, 
est_sec  - Estimated number of seconds remaining. 

は、PHPはJavascriptに情報を返し、あなたはたくさんの情報を持っている必要がありましょう。 視聴者に応じて、利用可能なすべての情報を使用しない可能性があります。

関連する問題