我在VB.NET中使用ASP.net(2.0)。
我有一个用户注册表。 在该表格上,用户提供了他所有的联系方式,他可以在ASP.net中上传具有普通文件上传控件的图像。
这是我的问题。
如果页面上出现任何问题,我会向用户提供一条错误消息,说明他遗漏了什么或出了什么问题。但是当页面确实发生时页面会刷新。现在,用户选择的图像链接已消失。现在,当用户修复他的错误时,他认为他正在上传图片,但他从未这样做,因为当页面重新加载时,它删除了文件上传控件中的图像链接。
注意,用户不必上传图像,因此当字段为空时不会出现错误。
任何人都知道我必须做什么?
答案 0 :(得分:4)
任何人都知道我必须做什么?
两种常用方法:
添加客户端(JavaScript)表单验证,以便对于大多数人来说,错误将在之前弹出他们提交表单而不是稍后,在服务器端,到那时上传将会丢失。
为每个表单实例提供唯一的ID。在具有错误的表单上上载文件时,将该文件存储在服务器上并在数据库中记录具有该ID的表单具有附加文件。在第二次机会表单上,将ID包含为隐藏字段,并直观地指示已记住上载的文件。提交时,拖出记住的文件并将其附加到新提交。
答案 1 :(得分:3)
我认为你无能为力。过去几年中,浏览器已锁定文件表单字段以防止偷渡式上传。我会有一个单独的上传照片的过程。
答案 2 :(得分:3)
这种行为是设计的。这是浏览器强加的安全限制,因此只有通过明确的操作才能从用户的计算机上传所有文件。
如果在表单提交过程中出现问题,您应该让用户重新上传他/她的文件。这是正确的方法。将其视为交易(全部或全部)。
答案 3 :(得分:1)
出于安全原因,没有人可以在HTML中的文件字段中写入值。您可以上传文件,然后报告错误,并为用户提供取消上传的方法。编辑:这是另一个答案中更详细的内容。