我如何重置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; 

我如何重置asp:FileUpload上的文件名后,我打了服务器

这不是通过设计编程设置的。文件上传控件呈现为

<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.

相关文章: