2009-04-11 49 views
0

我正在使用ASP.net(2.0)与VB.NET。文件上传链接在页面重新加载时清除,为什么?

我有一个用户注册表单。 在这种形式下,用户提供他所有的联系方式,他可以通过ASP.net中的普通文件上传控件上传图片。

这是我的问题。
如果网页出现任何问题,那么我给用户一个错误信息,说明他遗漏了什么或出了什么问题。但是,当这种情况发生时,页面会刷新。现在,用户选择的图像链接消失了。现在,当用户修复他的错误,他认为他正在上传一张图片,但他从来没有这样做,因为当页面重新加载时,它删除了文件上传控件中的图像链接。

注意,用户不必上传图片,所以当字段为空时不会有错误。

任何人都有一个想法,我必须做什么?

回答

3

该行为是由设计。这是浏览器施加的安全限制,所以只有通过明确的操作才能从用户的计算机上传所有文件。

如果在提交表单时出现错误,您应该亲密地重新上传他/她的文件。这是做到这一点的正确方法。把它看作一个交易(全部或全部)。

1

出于安全原因,没有人可以在HTML中的文件字段中写入值。您可以上传文件,然后报告错误,并为用户提供取消上传的方法。编辑:这是什么bobince descibes更详细的另一个答案。

3

我不认为你能做的事情很多。过去几年中,浏览器已锁定文件表单字段以防止上传驱动器。我将有一个独立的上传照片的过程。

4

任何人都有一个想法,我必须做什么?

,有两种常用的方法:

  1. 添加客户端(JavaScript)的形式验证,以便为广大的人,一个错误会弹出他们已经提交的形式,而不是前之后,在服务器端,到那时上传将会丢失。

  2. 为每个表单实例指定一个唯一的ID。将文件上载到出现错误的表单上时,请将该文件存储在服务器上,并在数据库中记录具有该ID的表单具有附加文件。在第二种机会形式中,将ID包含为隐藏字段,并以可视方式指示上传的文件已被记住。提交时,拖出记住的文件并附上新的提交。

相关问题