先.filenotfoundexexception,即使文件存在
本文关键字:文件 存在 filenotfoundexexception | 更新日期: 2023-09-27 18:09:27
我正在使用GUID上传文件,然后我试图下载它们,但我得到一个文件没有发现错误,即使文件在服务器上,我想,我在命令参数上做错了,但我不确定是什么。请告诉我哪里错了,任何帮助都是感激的。
数据库模式:我有2列:ReceiptFileName -存储文件名没有GUID的UI。filename -存储带有GUID的文件名。
Aspx代码:
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Download" CommandArgument='<%# Bind("filename") %>' Text='<%# Bind("ReceiptFileName") %>' ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
上传代码:
{
if (FileUpload1.HasFile)
{
//check file Extension & Size
string filename = FileUpload1.PostedFile.FileName;
{
filename = filename + Guid.NewGuid();
}
int filesize = FileUpload1.PostedFile.ContentLength;
if (filesize > (20 * 1024))
{
Label1.Text = "Please upload a zip or a pdf file";
}
string fileextention = System.IO.Path.GetExtension(FileUpload1.FileName);
if (fileextention.ToLower() != ".zip" && fileextention.ToLower() != ".pdf")
{
Label1.ForeColor = System.Drawing.Color.Green;
Label1.Text = "Please upload a zip or a pdf file";
}
else
{
//string ReceiptFileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
string ReceiptFileName = Path.GetFileName(filename);
//save file to disk
FileUpload1.SaveAs(Server.MapPath("Reciepts/" + ReceiptFileName));
}
下载代码:
protected void gridExpenditures_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Download")
{
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AppendHeader("content-disposition", "FileName=" + e.CommandArgument);
Response.TransmitFile(Server.MapPath("~/Reimbursement/Reciepts/") + e.CommandArgument);
Response.End();
}
}
这可能只是愚蠢的,但我只能读取文件路径不同:
FileUpload1.SaveAs(Server.MapPath("Reciepts/" + ReceiptFileName));
Vs: Response.TransmitFile(Server.MapPath("~/Reimbursement/Reciepts/")
最后一个路径包含Reimbursement
。