C#FileUpload带有客户端反馈并保存文件

时间:2015-04-07 19:05:32

标签: c# asp.net file-upload

我在C#中有一个项目需要在包含很多其他信息的页面中上传文件。

问题

1 - 文件上传不会为用户提供任何反馈,因此他们无法知道需要多长时间(不适用于UploadProgress和UpdatePanel)。

2 - 我无法用javascript(例如关系)进行一些验证,所以如果我在服务器端出现任何错误,FileUpload会丢失文件,用户需要上传整个文件。

3 - 最终用户链接非常差,因此对于10mb将需要很长时间(10mb是允许的最大值)。

解决方案(其中没有一个效果很好):

1 - 我可以使用javascript(如uploadify)上传客户端文件并获取百分比,但是作为异步方法工作,所以我需要阻止屏幕不允许用户做其他事情。我的担心更多的是当我收到文件并保存时,因为我需要将此文件与其他实体链接,否则我将丢失文件和实体之间的桥梁。 (与AsyncFileUpload控件相同)。这不能解决问题2。

2 - 只需将所有文件同步作为FileUpload,当所有文件到达服务器时,保存文件并将所需的所有信息放入HiddenFields中,因此如果我在服务器端出现任何错误,我可以恢复文件。问题是我在上传文件时无法为用户提供任何反馈。这并不能解决问题1。

3 - 拆分其他实体的所有文件(这会使项目混乱很多)并单独上传文件。问题是,如果我这样做,我需要一些机制来创建文件和实体之间的链接我不能允许多次使用该文件,所以这可能会请求大量资源来检查它。这解决了列出的问题,但我认为为用户创建另一个复杂的问题,并为系统进行大量新的验证。

4 - 创建2个按钮,一个按钮VALIDATE用于服务器端的验证(没有文件上传),并且在此检查之后,允许用户单击SAVE按钮。这并不能解决问题1。

嗯,正如你所看到的,我正在考虑很多问题,但我找不到一个非常好的解决方案。一个符合我所有需求的。有人有想法吗?

PS:我在转发器中也有FileUploads,所以ID是自动的。

0 个答案:

没有答案