5

これは、PHP 5.4 で追加された PHP の改良であることに気付きました。

また、これが SESSION ステータスを使用していることも理解しています。これを表示するには、HTML を更新するための何らかの Javascript が必要です。送信ボタンを押すとJavaScriptがトリガーされると思います。また、インターバルタイマーを設定して進行状況を確認できます。

私がやりたいのは、進行状況で div の HTML を更新することだけです。(例: 25%...35%)

これまでの私の理解:
- 非表示の値を持つフォームが必要です
- これにより、その名前から情報を含む SESSION VARIABLE が作成されます -
ステータスを取得するには、進行状況を監視する必要があります

オプション
- 方法 1: オンラインで入手できるビルド済みのものを使用します。それを説明する人はほとんどいません。
- 方法 2: ファイルを別の php ファイルに送信し、JSinterval を使用して進行状況を確認します。
- 方法 3: すべてを同じページで行う方法はありますか?

4

1 に答える 1

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>
于 2013-03-07T15:11:42.860 に答える