如何解决回发问题文件上传控件的路径不存在

本文关键字:文件 控件 不存在 路径 问题 何解决 解决 | 更新日期: 2023-09-27 18:10:44

我正在使用asp.net fileupload控件上传文件,每当回发发生由于页面上的其他字段,在文件上传控件中选择的路径丢失。我在页面上使用多个文件上传控制diff.目的如何解决这个问题?请帮助简单的&亲爱的,合适的例子。

string file = Path.GetFileName(UploadSalesServiceCopy.PostedFile.FileName);
string filepath2 = ConfigurationManager.AppSettings["ServerMapImgPath"].ToString();//.......local drive path via web config
string subPath = filepath2 + file;
bool IsExists = System.IO.Directory.Exists(Server.MapPath(subPath));
if (!IsExists)
    System.IO.Directory.CreateDirectory(Server.MapPath(subPath));
if (UploadSalesServiceCopy.HasFile)
{
    //UploadSalesServiceCopy.SaveAs(subPath);//PHYSICAL path
    UploadSalesServiceCopy.SaveAs(Server.MapPath(subPath));//server path             
}
else
{
    ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "javascript", "alert('No File Selected.')", true);
}

如何解决回发问题文件上传控件的路径不存在

点击上传按钮…您的页面首先重定向到Page_load事件,在那里设置页面值。对于

page_load(..)
{
   if(!IsPostBack)
   {
      ..setpagevalues();
   }
}

主要原因是……您将得到空路径....试一试. .

如果你正在使用asp.net文件上传控件和更新面板。那么问题是文件上传控制与部分回发不兼容。

<asp:FileUpload ID="fpTest1" runat="server" />
<asp:FileUpload ID="fpTest2" runat="server" />
<asp:UpdatePanel ID="up" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="btnActions" runat="server" Text="Other Actions" >
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="test" runat="server" OnClick="test_Click" Text="Upload File" />

你可以看到,当你点击其他动作按钮文件上传将有值。

将Post back控件放在更新面板中,并将文件上传控件移出

您只需使用fileupload与updatepanel,还把ViewStateMode="Enabled" fileupload。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" ViewStateMode="Enabled"/>
 </ContentTemplate>
        </asp:UpdatePanel>