我在页面上有一个FileUpload
元素。旁边是一个标签,显示上传尝试的结果,下面是一个用户可以选择执行上传的按钮。
<p>
<asp:FileUpload ID="InputUpload" runat="server" />
<asp:label id="LabelResult" runat="server" />
</p>
<p>
<asp:Button runat="server" ID="ButtonUpload" Text="Upload"
OnClick="ButtonUpload_Click" />
</p>
对于视觉上更有视觉的人来说,这是一张图片:
客户端(用户)按顺序执行以下操作:
此时,页面崩溃了。我在Chrome中收到以下消息:
找不到此网页
ERR_FILE_NOT_FOUND
我在Page_Load()
和ButtonUpload_Click()
设置了断点,试图弄清楚发生了什么,但看起来控件不会返回到我的页面。我认为Chrome在尝试使用名称在选中后更改一段时间后发布的文件时会出现问题。我是否有可能在服务器端捕获此错误,以便页面不会崩溃?
如果有我不需要的代码,请告诉我。就像我提到的那样,我在ButtonUpload_Click()
的第一行代码中设置了断点,并且它没有被击中,所以我假设发布该代码没有帮助。
经过进一步测试后,似乎只会在Chrome中发生这种情况。我在Firefox和Internet Explorer中测试,文件是使用首次选择时的名称上传的。
答案 0 :(得分:0)
如果我的问题正确无误,那么您正试图覆盖FileUpload.FileName属性。
FileUpload.FileName Property: 获取客户端上的文件名称 使用FileUpload控件上传。
尝试使用以下内容:
string fName = FileUpload1.FileName;
然后使用fName
执行其余步骤(无论您要重命名的位置,都覆盖fName
变量)。如果您希望使用该名称上传fName,也可以将fName传递给服务器!
如果您想在客户端执行此操作,可以使用JQuery:
var fName = $('#FileUpload1').prop("files")['name'];
然后根据需要设置fName。