1

我有一个非常广泛的问题....我不明白上传进度模块是如何工作的,而且它对我也不起作用,所以....

1) 我已经安装了 nginx 和所有的上传模块 (nginx, nginx-extras) 和 php-fpm

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)第二个问题是:我开始尝试让这个东西工作的原因是因为我想编写一个php脚本,它将文件分成块并将它们发送到服务器,这样我就可以上传大文件,并拥有一个进度条来监控它。但我什至找不到最小的示例或教程如何使用 php 和 upload_progress_module 或 w/e 完成它。

不,我不想要基于 Flash 的上传器。

所以我想,你已经明白我很困惑。因此,如果您能解释我如何完成这项工作,并帮助解决现有配置的问题,那就太好了

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=[a custom upload id number]' 的 GET 参数传递给您的上传位置,以便它可以跟踪状态
于 2013-04-08T12:20:43.863 回答