将文件设置为文件加载不起作用(c# .net)

本文关键字:文件 net 加载 设置 不起作用 | 更新日期: 2023-09-27 18:11:05

我在"手动"设置文件为FileLoad时遇到问题。

我的情况是这样的:

我正在使用这个手册:http://www.codeproject.com/Tips/101834/How-to-Maintain-FileUpload-Control-s-State-after-P?msg=4176652#xx4176652xx

我需要记住页面上的PostBack后加载的文件。我有FileLoad对象和按钮,它会做PostBack。post back后,我设置Session["MenuFile"] = FileLoad;,会话记录被创建,但是,当我试图将这个文件设置回FileLoad对象时,它真的到了那里(我可以看到LoadFile对象上的文件)。但在页面上是空的。我试过设置它甚至在Load, Init事件上的FileLoad对象和没有工作。

这就像filelove成功地从会话加载文件,然后"重置"为默认设置(空白)。

下面是我的代码:

     <tr>
        <td>
            <asp:Label runat="server" Text="Menu:"></asp:Label></td>
        <td>
            <asp:FileUpload runat="server" ID="fuMenu"/>
            <asp:RequiredFieldValidator runat="server" ID="rfvMenu" ControlToValidate="fuMenu" ErrorMessage="Menu file is required" ForeColor="Red">*</asp:RequiredFieldValidator>
        </td>
    </tr>
    <tr>
        <td>
            <asp:Button runat="server" ID="neco" />
            <asp:ValidationSummary runat="server"/>
        </td>
    </tr>

和后面的代码:

protected void Page_Load(object sender, EventArgs e)
    {
        // If first time page is submitted and we have file in FileUpload control but not in session 
        // Store the values to Session Object 
        if (Session["MenuFile"] == null && fuMenu.HasFile)
        {
            Session["MenuFile"] = fuMenu;
        }
        // Next time submit and Session has values but FileUpload is Blank 
        // Return the values from session to FileUpload 
        else if (Session["MenuFile"] != null && (!fuMenu.HasFile))
        {
            fuMenu = (FileUpload)Session["MenuFile"];
        }
        // Now there could be another sictution when Session has File but user want to change the file 
        // In this case we have to change the file in session object 
        else if (fuMenu.HasFile)
        {
            Session["MenuFile"] = fuMenu;
        }
    }

我需要与会话工作,所以我不能使用这样的东西:如何在回发后保持FileUpload控件的状态信息消失按钮点击

我真的很绝望,任何帮助我都会很感激。谢谢!

将文件设置为文件加载不起作用(c# .net)

出于安全考虑,ASP:FileUpload是只读的。您不能在回发后设置任何内容。

我使用标签代替回发后的fileupload作为对用户有文件上传的反馈。

我的回发检查fileupload的内容,上传文件,隐藏fileupload,显示包含文件名的标签(存储在会话对象中),还显示一个删除按钮,该按钮隐藏标签,删除会话对象,删除文件,并在另一次回发后再次显示fileupload