【问题标题】:ASP.NET File Upload control File.Exists always returns falseASP.NET 文件上传控件 File.Exists 总是返回 false
【发布时间】:2013-02-22 17:42:54
【问题描述】:

在我的应用程序中,我必须让用户将文件上传到系统中,并且我有以下代码:

 <asp:FileUpload ID="CSVFileUpload" runat="server" CssClass="TextInput" Width="250" />
   <asp:LinkButton ID="lbnUploadCSVFile" runat="server" CssClass="MainLinkWithSpaces" OnClick="lbnUploadCSVFile_Click">Upload CSV file</asp:LinkButton>
   <asp:RequiredFieldValidator ID="RequiredFieldValidator1" CssClass="warning" runat="server" ControlToValidate="CSVFileUpload" ErrorMessage="Please Upload a File!"></asp:RequiredFieldValidator>
   <asp:RegularExpressionValidator ID="RegularExpressionValidator1" CssClass="warning" runat="server" ControlToValidate="CSVFileUpload"
                ErrorMessage="Please make sure you upload a csv file!" ValidationExpression=".*\.csv$"></asp:RegularExpressionValidator>
        <asp:Label ID="lblUploadError" Runat="server" Visible="True" CssClass="warning" Text=""></asp:Label>

在后面的代码中,我总是检查上传的文件是否存在,但我的问题是 File.Exists 总是返回 false,尽管文件存在于磁盘上的指定位置。

  protected void lbnUploadCSVFile_Click(object sender, EventArgs e)
  {
        lblUploadError.Text = "";
        if (CSVFileUpload.HasFile)
        {
            if (CSVFileUpload.FileName.ToString() != String.Empty)
            {
                // make sure the uploaded file exists     
                if(File.Exists(CSVFileUpload.FileName))
                {
                  // upload file
                }
             }
         }
  }

这可能是什么原因?我完全被这个绊倒了。我还提到,当使用 localhost 我的文件存在并且它成功上传它。非常感谢!

【问题讨论】:

  • 您需要先保存文件....NET 框架不会为您执行此操作。
  • 谢谢,你拯救了我的一天!现在工作正常! :)
  • 它检查文件是否存在于服务器而不是客户端

标签: asp.net file file-upload upload


【解决方案1】:

我也有同样的问题。但是我在其他页面中使用了相同的代码,它运行良好,但在此页面中它不起作用。有一点区别。 在这里,我在 HTML 表格中使用我的上传控件,它们都在一个 aspx 面板中。 我也添加了触发器,就像我以前的触发器一样。 当我将上传控件放在表格之外(在面板中)时,它可以工作。

<asp:Panel ID="Topic_Pnl" runat="server">
    <table>
    <tr>
           <td colspan="2" height="20"> <asp:FileUpload ID="my_Uld" runat="server" TabIndex="15" />
<asp:CheckBox ID="myChB" runat="server" AutoPostBack="True" OnCheckedChanged="myChB_CheckedChanged" TabIndex="20" Text="ok" />
</td>
      </tr>
</table>
</panel>

当用户单击复选框时,事件运行,我检查上传的文件并保存它。但总是在检查答案时 如果(my_Uld.HasFile) 是假的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-19
    • 2015-10-20
    • 2012-10-22
    • 1970-01-01
    • 2019-10-06
    • 2015-05-05
    • 2010-10-29
    • 1970-01-01
    相关资源
    最近更新 更多