【发布时间】: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