1

かなり広範囲にわたる質問があります....UploadProgress Moduleがどのように機能するのか理解できません。また、私にとっても機能しないので、...。

1)すべてのアップロードモジュール(nginx、nginx-extras)、およびphp-fpmとともにnginxをインストールしました

2)これはプロジェクトのnginx構成の一部です:

    location ~ \.php$ {
  include /etc/nginx/fastcgi_params;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_param SCRIPT_FILENAME /home/cha0s/learnphp$fastcgi_script_name;
  fastcgi_param PATH_INFO $fastcgi_script_name;

  track_uploads proxied 1m;
}

location ~ ^/files/(.*)$ {
        alias /home/cha0s/$1;
        internal;
}

location ^~ /progress {
        # report uploads tracked in the 'proxied' zone
        report_uploads proxied;
}

3)このページの下部にあるチュートリアルに従いました:http ://wiki.nginx.org/HttpUploadProgressModule :

だから私はフォームを持っていて、プログレスバーをアップロードします:

<form id="upload" enctype="multipart/form-data" action="index.html" method="post">
  <input name="file" type="file"/>
  <input type="submit" value="Upload"/>
</form>
<div id="uploading">
  <div id="progress" class="bar">
    <div id="progressbar"> </div>
    <div id="percents"></div>
  </div>
</div>

jqueryスクリプトをトリガーするJSコード:

  <script type="text/javascript">
    $(document).ready(function(){
      $('form').uploadProgress({
        /* scripts locations for safari */
        jqueryPath: "/static/js/jquery.js",
        uploadProgressPath: "/static/js/jquery.uploadProgress.js",
        /* function called each time bar is updated */
        uploading: function(upload) {$('#percents').html(upload.percents+'%');},
        /* selector or element that will be updated */
        progressBar: "#progressbar",
        /* progress reports url */
        progressUrl: "/progress",
        /* how often will bar be updated */
        interval: 2000
      }
    });
  </script>

そしてそのスクリプト: https ://github.com/drogus/jquery-upload-progress/blob/master/jquery.uploadProgress.js

質問と問題:

1)最初の問題は、私が常に返されることです({"state": "starting"}); ..。

2)2番目の質問は:私がこれを機能させようとした理由は、ファイルをチャンクにスライスしてサーバーに送信するphpスクリプトを書きたかったので、巨大なファイルをアップロードして、それを監視するためのプログレスバー。しかし、phpとupload_progress_moduleまたはw/eを使用してそれを実行する方法の最小の例やチュートリアルを見つけることさえできませんでした。

いいえ、フラッシュベースのアップローダーは必要ありません。

だから私は、あなたは私が混乱していることをすでに理解していると思います。だから、私がこれをどのように行うことができるかを説明できれば、既存の構成の問題を解決するのに役立つでしょう

4

2 に答える 2

1

action="index.html"に行くリクエストのようには見えませんlocation ~ \.php$

于 2012-07-11T12:42:11.963 に答える
0

これでまだ問題が発生しているかどうかはわかりませんが、いくつかの解決策については以下を参照してください...

  1. upload_pass値が指定されていません
  2. upload_storeが指定されていません
  3. 指定したら、upload_storeハッシュディレクトリを正しい権限で作成する必要があります
  4. アクション「/upload」をフォームに追加し、アップロードドメインのこの場所にフォームを送信する方が理にかなっています(フォームドメインと異なる場合)
  5. 返されたjsonの「開始」値に基づいて、最初にポイント2と3のディレクトリの問題を確認すると思います。
  6. ステータスを追跡できるように、フォームを「X-Progress-ID =[カスタムアップロードID番号]」のGETパラメータを使用してアップロード場所に渡す必要があります
于 2013-04-08T12:20:43.863 に答える