在 Nginx + PHP-FPM 的配置中,我想实现 HTTP 表单上传文件的进度。思路是这样的:
1. 文件提交到upload.php,Nginx在发送这个请求到后端的PHP-FPM服务器的同时,把请求的HTTP头发送到upinfo.php;upinfo.php 的作用就是把文件大小保存到
2. Nginx在处理upload.php时,把接收到数据的长度按一定的频率发送到upbytes.php,upbytes.php的作用就是该长度数字保存到MemCached等内存中。
3. 前端通过Ajax等请求通过访问MemCached,获得已上传的字节数、文件大小,从而获取文件上传的进度信息。
在不额外安装Nginx第三方扩展模块的情况下,能否实现此功能?
每上传几字节, nginx就发起一次本地的http连接会累死的, 早点断了这念头吧, 这方案还不如用脚本inotify监控php上传临时文件的modify, close_write, delete事件写入memcached, 不过话说回来, 最优解还是用upload progress module吧######如果没有特殊情况,安装模块使用已成熟方案是最佳路径。######关注一下.######实现这个功能貌似有个php插件,找找吧######我用ABC, 建义你用APC,呵呵。。。######用APC吧######非常感谢大家的回复,特别是勇者天空,提出了inotify方案。经过一翻调研,nginx upload progress module方案应该是目前最优方案,Apc方案也可以考虑一下。哎,又要重新编译nginx了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。