-2

我使用流动代码创建了一个 pdf 文件。当我运行我的代码时,生成的 pdf 文件存储在下载文件夹中。我想改变这条路。我想将它保存到我的解决方案中。我怎样才能做到这一点?

这是代码:

            Document pdfDoc = new Document(new Rectangle(624f, 568f),0f,0f,0f,0f);
            try
            {
                PdfWriter.GetInstance(pdfDoc, System.Web.HttpContext.Current.Response.OutputStream);
                pdfDoc.Open();
                string imageFilePath = System.Web.HttpContext.Current.Server.MapPath("../images/1.jpg");
                iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(imageFilePath);

                jpg.ScaleToFit(624f, 468f);
                pdfDoc.Add(jpg);
                pdfDoc.Close();
                Response.ContentType = "application/pdf";


                Response.AddHeader("content-disposition", "attachment; filename= " + System.DateTime.Now.ToString("yyyyMMdd_HHmmssff") + ".pdf");

                Response.End(); 

            }
            catch (DocumentException de)
            {
                System.Web.HttpContext.Current.Response.Write(de.Message);
            }
4

2 回答 2

3

我想在服务器中保存一个指定的文件夹,该 pdf 将保存在该文件夹中。

你不能。服务器端代码不(也不能)了解客户端文件系统的任何信息。这是出于一系列架构和安全原因。

用户无法更改此路径。

如果他们通过网络浏览器访问它,他们肯定可以。除了编写自己的自定义 Web 浏览器外,用户还可以指定他们想要保存文件的位置。(或者如果他们想完全保存它们。)

那么我该怎么做呢?

要么编写一个自定义 Web 浏览器并要求您的用户仅从该浏览器访问您的 Web 应用程序,要么编写一个用于传输文件(以及您需要的任何其他功能)的客户端应用程序并要求您的用户使用该应用程序而不是他们的 Web浏览器。

Web 应用程序无法访问客户端文件系统。

于 2014-06-16T13:30:33.417 回答
1

我认为您可以使用以下方法

HttpContext.Current.Server.MapPath()

更多信息在这里

于 2014-06-16T13:57:56.677 回答