我有这个页面,用户可以上传文件(多个文件,每个大小限制10MB)。这是一个两步的过程。第1步有输入表单。第2步是带有提交按钮的预览页面。
我应该如何处理用户在预览页面上关闭浏览器而不提交表单的情况?我应该在步骤1之后将文件保存在临时位置吗?这是一个不错的解决方案?
一般来说,上传(合理)大文件的最佳做法是什么?
感谢。
答案 0 :(得分:1)
看看这个:
http://www.codeproject.com/Articles/68374/Upload-Multiple-Files-in-ASP-NET-using-jQuery
不管怎样,你可能最终会看到一个jQuery / AJAX控件来执行此操作。
答案 1 :(得分:0)
如果用户离开,则让他们重新开始。很可能他们离开是有充分理由的。如果发生了撞车事故,请将责任保留在最后。如果您选择在没有提交数据的情况下存储数据,则可能允许恶意用户利用您的存储。
您还可以查看名为chunking的过程。
有关mvc3中文件上传的更深入讨论,请参阅此SO帖子:MVC 3 file upload and model binding
答案 2 :(得分:0)
您可以使用临时文件夹保存文件,并仅在提交表单时将文件复制到最终位置。
无论如何,最好是实现垃圾收集器。垃圾收集器每晚都可以清空临时文件夹。但是当使用垃圾收集器时,如果您有办法识别未提交的文件(例如,如果在提交时将数据行添加到数据库中),则可以将文件从头开始放在最终位置,然后让垃圾收集器每晚都将它们移除。
可以使用Jify UI插件(例如Uploadify:http://www.uploadify.com/)上传大文件。 你应该注意它使用flash,这一方面非常适合上传大文件,但另一方面它会阻止你的应用程序支持iPad等Apple机器。