ASP.NET同时上传多个文件,和不使用HTMLFileInput上传的方法(resource about file upload)
关于同时上传多个文件,目前有很多解决方案可行,如下
MultiPowUpload
http://www.element-it.com/MultiPowUpload.aspx
jQuery Multiple File Upload Plugin
http://www.fyneworks.com/jquery/multiple-file-upload/
Allowing Users to Upload Multiple Files at Once
http://www.dotnetjunkies.com/Tutorial/81E0C3A9-1B40-425C-B150-B578FE724A39.dcik
Uploading Files Using the File Field Control
http://msdn.microsoft.com/en-us/library/aa478971.aspx
Upload multiple files Hotmail style
http://www.codeproject.com/KB/aspnet/multiuploads.aspx
但几乎所有的文件上传最终都是通过HTMLFileInput控件而实现的,因为HTMLFileInput是RFC 1867标准所唯一指定的控件
(RFC 1867 Form-based File Upload in HTML http://www.ietf.org/rfc/rfc1867.txt)
有些奇怪的客户不知是何原因,一定要使用非HTMLFileInput控件上传,这种情况下,下面的方法可以一试:
- 首先使用 FileSystemObject 或 XMLHttpRequest object 把要上传的文件以二进制的方式读进一个JavaScript变量(具体方法请参考http://www.javascripter.net/faq/reading2.htm)
- 把这个JavaScript变量的值赋给一个<input type="Hidden" runat="server"/>的HiddenField里面
- 既然这个HiddenField是runat=server的,我们就不难把它弄到服务端去,并使用System.IO把它存成文件格式。
这样,就完成了上传。
但是这个方法依然有很多的问题,尤其是FSO的权限问题,用户不会随随便便就让你读他的文件系统,无奈,也只能算是种不是方法的方法吧。
当前,使用ActiveX控件进行HTTP方式的上传,还是最实在的,可惜不会,学会之后再发吧。
Lance Zhang
Microsoft Online Community Support
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述