我有一个即将进行的项目,我需要处理来自浏览器的非常大的上传(经典输入类型 ="file"或 Java Applet),并寻找在服务器上完成这项工作的最佳工具。
这些是我需要的东西:
我对使用什么技术仍有一定的余地,所以我想提供一些建议,以便能够在服务器上选择最佳技术来处理此任务:
我更习惯于 Microsoft Stack,但愿意在必要时进行更改:如上所述,我只是在寻找最适合这项工作的工具。
谢谢 !
更新 :
服务器端是我对这个问题真正感兴趣的部分 ,而不是客户端。
看起来这可能是微不足道的,但是当您开始深入研究时,您会看到 .NET 有 4 Mb 的限制,使用大量内存的下载,可以阻止其他线程(当您对线程数量有限制时,如果一个线程可以在互联网上上传/下载 2 Gb 文件的持续时间内执行:那么这不会很好地扩展,是吗?)等。
最佳答案
你需要:
我刚刚完成了一个完全这样的申请;我会使用 Silverlight (
WebRequest
async)、ASP.NET ( IHttpHandler
/IHttpAsyncHandler
) 和 SQL Server 2005 ( UPDATETEXT
/READTEXT
) 进行文件存储。更新 : 关于 ASP.NET 服务器端代码:
ASP.NET 默认配置允许每个处理器有 100 个线程;
IHttpAsyncHandler
不会阻止您的进程,您可以在那里直接将文件内容写入 context.Response.OutputStream
.对于上传,您还将发送多个数据块,但在多个 HTTP 连接中;虽然这可能会因 HTTP header 而带来一些过热,但在我的测试中效果很好。
关于web-applications - 在服务器端处理非常大的 http 上传和下载的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1674846/