1

下面是我生成示例 PDF 文件的代码。但是 server.mappath 方法将文件保存在项目文件夹中。如何让 PDF 文件保存在我自己的桌面上?

protected void btnPDF_Click(object sender, EventArgs e)
    {


        var document = new Document(PageSize.A4, 50, 50, 25, 25);
        var filename = DDLCase.SelectedItem.Text + ".pdf";
        var output = new FileStream(Server.MapPath(filename), FileMode.Create);
        var writer = PdfWriter.GetInstance(document, output);
        document.Open();
        var welcomeParagraph = new Paragraph("Test1");
        document.Add(welcomeParagraph);
        document.Close();
        btnPDF.Enabled= false;
    }
4

2 回答 2

3

目前还不清楚您的问题是什么,因为Server.MapPath(filename)用其他位置替换应该很简单。

一个有用的功能是Path.Combine,因此您可以正确构建文件的路径:

   var output = new FileStream(Path.Combine("c:\\myPDF\\", filename), FileMode.Create);

请注意,要在您计划存储文件的服务器上正确完成文件夹必须具有足够的权限以允许 ASP.Net 进程将文件保存在那里。如果您使用带有模拟的 Windows 身份验证,它会变得更加棘手,因为在请求期间运行的帐户代码将是传入用户的帐户。

于 2013-06-03T04:22:18.703 回答
0

尝试这个

   public string CommonFileSave(HttpPostedFileBase postedFile, string filePath)       
   {
        string resultResponse = "sccuess";

        if (!Directory.Exists(filePath))
        {
            Directory.CreateDirectory(filePath);
            postedFile.SaveAs(filePath + postedFile.FileName);
        }
        else
        {
            filePath = filePath + postedFile.FileName;
            if (!System.IO.File.Exists(filePath))
            {
                postedFile.SaveAs(filePath);
            }
        }
        return resultResponse;
    }
于 2017-01-31T07:48:36.777 回答