先.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();
        }
    }

先.filenotfoundexexception,即使文件存在

这可能只是愚蠢的,但我只能读取文件路径不同:

FileUpload1.SaveAs(Server.MapPath("Reciepts/" + ReceiptFileName));
Vs:

Response.TransmitFile(Server.MapPath("~/Reimbursement/Reciepts/")

最后一个路径包含Reimbursement