私のアプリケーションでは、ユーザーがファイルをシステムにアップロードできるようにする必要があり、次のコードがあります。
<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 を使用すると、ファイルが存在し、正常にアップロードされることにも言及します。どうもありがとう!