3

我已经编写了两种方法,例如 FileUpLoad() 和 FileDownLoad() 来上传和下载本地系统中的单个文件。

void FileUpLoad()
{
    string hfBrowsePath = fuplGridDocs.PostedFile.FileName; //fuplGridDocs is a fileupload control
    if (hfBrowsePath != string.Empty)
    {
        string destfile = string.Empty;            
        string FilePath = Path.Combine(@"E:\Documents\");            
        FileInfo FP = new FileInfo(hfBrowsePath);
        hfFileNameAutoGen.Value = PONumber + FP.Extension;
        destfile = FilePath + hfFileNameAutoGen.Value;   //hfFileNameAutoGen is a hidden field
        fuplGridDocs.PostedFile.SaveAs(destfile);
    }
}

void FileDownLoad(LinkButton lnkFileName)
{
    string filename = lnkFileName.Text;
    string FilePath = Path.Combine(@"E:\Documents", filename);
    fuplGridDocs.SaveAs(FilePath);
    FileInfo fileToDownLoad = new FileInfo(FilePath);

    if (fileToDownLoad.Exists)
    {
        Process.Start(fileToDownLoad.FullName);
    }
    else
    {
        lblMessage.Text = "File Not Saved!";
        return;
    }
}

在将应用程序托管在 IIS 中之前运行应用程序时,我可以将文件上传到所需位置,也可以从保存的位置检索文件。但是在localhost中发布后,我只能上传一个文件。我无法下载保存的文件。也不例外。上传的文件保存在所需位置。我不知道为什么它没有检索文件?为什么我无法在 IIS 中下载文件?我在互联网上搜索了很多,但找不到解决方案。如何解决这个问题?我使用的是 Windows XP 和 IIS 5.1 版本。

4

2 回答 2

2

当您将此站点部署到服务器时,您希望您的 Web 应用程序如何做Process.Start,您只是在服务器上打开图片,而不是在客户端 PC 上。

我认为这将回答您的问题: http: //www.codeproject.com/Articles/74654/File-Download-in-ASP-NET-and-Tracking-the-Status-o

下载文件在 E:\Documents 之后也缺少斜杠

于 2012-05-08T04:27:08.070 回答
0

另一种选择是将通配符添加到 IISMIME类型

于 2012-05-08T04:36:42.370 回答