2013-03-07 6 views
5

これは、PHP 5.4で追加されたPHPの改善点に気付きました。どのようにPHP 5.4で基本的なファイルアップロードプログレスバーを実装しますか?

また、私は、これはSESSIONの状態と、それはあなたがHTMLを更新するJavscriptのいくつかの並べ替えを必要とするまで表示するためにはを使用しています理解しています。私はジャバスクリプトが送信ボタンを押すことによって引き起こされると信じています。また、インターバルタイマーを設定して進行状況を確認することもできます。

私がやりたいすべての進歩はdiv要素のHTMLを更新しています。 (例えば25%... 35%)

これまでの私の理解:
- あなたは隠された値
でフォームを必要とする - あなた - これは
の情報を持って、その名前からセッション変数を作成し、状態を取得するために進捗状況を観察する必要があります

オプション
- 方法1:オンラインで見つけることができる既成のものを使用します。ほんの少ししか説明していない。
- 方法2:別のphpファイルにファイルを送信し、その進捗状況を確認JSinterval使用しています。
- 方法3:同じページですべてを行う方法はありますか?

+0

ファイルアップロードの進行状況バーは、定義により、基本的な何でもあります。 –

+0

何を試しましたか? http://php.net/manual/en/session.upload-progress.phpを見ましたか? –

+1

私はプロセスに混乱しています。 Javascriptに強制的にフォームを送信した後にステータスを取得しますか?または、onclickイベントを使用すると、アップロードが開始され、ステータスを取得していますか? –

答えて

0
<div id="progress"></div> 
<form action="/upload.php" method="POST" enctype="multipart/form-data" id="upload"> 
<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="upload" /> 

<input type="file" name="file" id="file" /> 
<input type="submit" value="Upload" onclick="upload()"/> 
</form> 

    <script> 
     //Check Sumbit has been clicked; either onclick or event handler 
     //Setup an interval timer updating the 'PROGRESS' div each check 
     //Each Interval: Get SESSION VARIABLE status and Update the div 'PROGRESS' 
     //Once file has completed; Do we redirect or submit the form? 

    function upload() 
    { 
    var xmlhttp; 
    if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
     } 
    else 
     {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
    xmlhttp.onreadystatechange=function() 
     { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
     document.getElementById("progress").innerHTML=setInterval(function(){xmlhttp.responseText},500); 
     } 
     } 
    xmlhttp.open("POST","upload_progress.php",true); 
    xmlhttp.send(); 

    } 

</script> 
+0

これは動作しますか? –

+0

いくつかの小さな間違いには注意してください。例えば、 "==" on setInterval part ... –

+0

ありがとう - 私はそれを編集します。 これをさらにどのように使うのですか?アップロードが完了したらページをリフレッシュするのと同じですか? –

関連する問題