C# 在计算机/手机中下载PDF文件时的默认路径

C# 在计算机/手机中下载PDF文件时的默认路径,c#,asp.net,pdf,itextsharp,C#,Asp.net,Pdf,Itextsharp,我创建了一个PDF网络应用程序,用户可以在计算机和手机上生成各种类型的PDF。然而,我在本地主机上运行我的程序,这就是我如何根据我的计算机的文件目录保存我的PDF var output = new FileStream(Path.Combine("C:\\Users\\apr13mpsip\\Downloads", filename), FileMode.Create); 然而,当我将我的webapp发布到azure上时,我无法从我的电脑和手机上下载。因此,我认为这可能是由于我的默认文件目录

我创建了一个PDF网络应用程序,用户可以在计算机和手机上生成各种类型的PDF。然而,我在本地主机上运行我的程序,这就是我如何根据我的计算机的文件目录保存我的PDF

var output = new FileStream(Path.Combine("C:\\Users\\apr13mpsip\\Downloads", filename), FileMode.Create);
然而,当我将我的webapp发布到azure上时,我无法从我的电脑和手机上下载。因此,我认为这可能是由于我的默认文件目录

因此,我想问一下如何为所有计算机和手机创建默认文件目录

或者是我在网上发布webapp时遗漏了一些必要的东西

谢谢

PS:我硬编码了一个默认文件路径,以便在本地主机上测试我的应用程序,以确保完美的工作条件。因此,当所有移动/计算机用户尝试下载PDF而不是我通常的硬编码文件路径时,我正在寻找一种方法,为他们找到一个默认的通用文件目录

更新

我尝试使用Server.MapPath方法,但收到一些错误

var doc1 = new Document();
        var filename = Server.MapPath("~/pdf") + "MyTestPDF" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".pdf";
       // var output = new FileStream(Path.Combine("C:\\Users\\apr13mpsip\\Downloads", filename), FileMode.Create);

        //iTextSharp.text.pdf.PdfWriter.GetInstance(doc1, output);

        using (var output = File.Create(filename))
        {
            iTextSharp.text.pdf.PdfWriter.GetInstance(doc1, output);
        }


        doc1.Open();
这是我收到的错误

ObjectDisposedException was unhandled by user code
Cannot access a closed file.

当您编写Web应用程序时,决不能使用硬编码路径,最后一个应该保存文件的地方是
C:\Users
!!不管这是不是Azure。这是任何类型的web应用程序的一般规则

在您的情况下,我建议您在应用程序中创建一个名为
pdf
或类似名称的文件夹,并使用以下代码在其中保存文件:

var fileName = Server.MapPath("~/pdf") + filename;
using (var output = File.Create(fileName) )
{
 // do what you want with that stream
 // usually generate the file and send to the end user
}

然而,还有更有效的方法。使用并将生成的PDF直接写入响应。将在本地服务器上为您节省大量空间,以及删除未使用的生成文件的逻辑。

我更新了我最初使用硬编码文件路径的问题,并尝试了您的方法“server.mappath”,为什么要打开doc1?请参阅及其答案,了解如何使用iTextSharp创建PDF!因为您的错误现在与Azure没有任何关系。其次,我强烈建议您直接将PDF写入响应流,除非您希望将其保存在持久性存储中。Azure Web角色中的本地文件系统不是一个持久存储。实际上,我不打算将我的PDF存储到Azure中。我的PDF函数实际上只是想通过从特定表中检索数据生成一个简单的文件,然后将其转换为PDF格式。因此,我实际上只需要一个公共路径目录,它可以帮助在手机和计算机上保存我的PDF,而不是将PDF保存到azure中。