【发布时间】:2017-03-21 10:09:12
【问题描述】:
我正在尝试在网络服务器上实时处理用户上传的文件, 但似乎,APACHE 调用 PHP,只有一次完整的文件上传。
当我使用 CURL 上传文件并设置
传输编码:“分块”
我取得了一些成功,但不能通过浏览器做同样的事情。
- 我使用了 Dropzone.js,但是当我尝试设置相同的标头时,它说 Transfer -Encoding 是一个不安全的标头,因此没有设置它。
这个答案解释了那里的问题。 Can't set Transfer-Encoding :"Chunked from Browser"
简而言之,问题是,当用户将文件上传到网络服务器时,我希望网络服务器在第一个字节可用时立即开始处理它。 通过过程我的意思是,将其通过管道传输到命名管道。
不希望 500mb 先上传到服务器,然后再开始处理。
但是使用当前的 Web 服务器 (APACHE - PHP),我似乎无法完成它。
有人可以解释一下,使用什么技术堆栈或解决方法,以便我可以通过浏览器上传大文件并开始处理它,只要第一个字节可用。
【问题讨论】:
-
如果你有兴趣可以通过node js来做我可以发布答案
-
您能否使用 Fineuploader 将 5 MB 的块上传到 Amazon AWS 并启动一个 cron 来检查新的 AWS 文件并为命名管道处理它?
-
@bxN5 :是的,请发帖,目前我正在尝试对 busboy 库做同样的事情,在“数据”功能上,我正在将块传递给子进程..!
-
@ChetanPatel :我不打算流式传输到 AWS,我想流式传输到外部应用程序,例如 tshark。
标签: php node.js apache file-upload dropzone.js