我如何重置asp:FileUpload上的文件名后,我打了服务器
本文关键字:服务器 文件名 何重置 asp FileUpload | 更新日期: 2023-09-27 18:14:30
我有一个文件上传部分在我的asp.net网站:
<asp:FileUpload ID="FileUpload1" runat="server" AllowMultiple="true"/>
<asp:Button ID="UploadPrework" runat="server" OnClick="UploadPrework" Text="Upload" />
在我的后台,当有人点击上传按钮时,我保存文件:
protected void UploadPrework(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
ReadExcelSheet();
}
}
private void ReadExcelSheet()
{
String savePath = FileUpload1.FileName;
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/App_Data/" + savePath));
}
保存后,文本框中的文件名会消失。相反,它会返回"no file selected "。
如何重置我的文件名?
我试过这样做,但没有任何运气:
FileUpload1.FileName = savePath;
这不是通过设计编程设置的。文件上传控件呈现为
<input type="file" ... />
作为安全预防措施,大多数浏览器不允许预先设置,恶意用户可能会将value属性设置为c:'password .txt,通过css隐藏控件并通过javascript提交表单。
您可以通过Chrome中的控制台验证此行为(IE似乎忽略了尝试):
>>$("#MainContent_FileUpload1").val("test.txt")
>>InvalidStateError: Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename, which may only be programmatically set to the empty string.