我有一个非常广泛的问题....我不明白上传进度模块是如何工作的,而且它对我也不起作用,所以....
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 的上传器。
所以我想,你已经明白我很困惑。因此,如果您能解释我如何完成这项工作,并帮助解决现有配置的问题,那就太好了