我有一个非常广泛的问题....我不明白上传进度模块是如何工作的,它对我来说也不起作用,所以....
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完成它。
不,我不想要基于闪存的上传者。
所以我想,你已经明白我很困惑。因此,如果你能解释我如何完成这项工作,并帮助解决现有配置的问题,那将是很好的
答案 0 :(得分:1)
action="index.html"
看起来不像是location ~ \.php$
的请求。
答案 1 :(得分:0)
不确定您是否仍然遇到此问题,但请参阅下面的解决方案......