【问题标题】:Do I need Rack middleware for having a file upload with progress via HTML5 (File API + XMLHttpRequest Level 2)我是否需要 Rack 中间件来通过 HTML5 进行文件上传(文件 API + XMLHttpRequest 级别 2)
【发布时间】:2023-10-22 20:38:01
【问题描述】:

我想为 Rails 应用程序构建一个带有进度指示器的(多)文件上传。此外,我不想使用基于 Flash 的解决方案。

我发现了许多 jQuery 库(例如 https://github.com/blueimp/jQuery-File-Upload),它们实现了 File API 和 XMLHttpRequest Level 2 API 来上传 Ajax 文件。

我想知道的是我是否需要一些额外的 Rack 中间件,正如本文末尾所声称的那样:http://blog.new-bamboo.co.uk/2010/7/30/html5-powered-ajax-file-uploads

我已经尝试使用 blueimp 库加载单个文件 ajax 文件,并且看起来一切顺利,没有任何 Rack 中间件。所以我的问题是,为什么会这样?什么情况下需要中间件?

谢谢!

【问题讨论】:

    标签: ruby-on-rails ajax html upload rack


    【解决方案1】:

    原因是不支持 formdata API 的浏览器需要 rack 中间件,因为在这种情况下,原始文件 API 流被发送到服务器。但是当使用 formdata API 时,你会得到正常的文件上传数据。更多信息可以在这里找到:http://blog.new-bamboo.co.uk/2012/01/10/ridiculously-simple-ajax-uploads-with-formdata

    【讨论】: