我正在尝试将使用Rotativa生成的pdf文件保存到我的网络应用程序的app_data文件夹中,但是我收到错误:
System.IO.DirectoryNotFoundException: Could not find a part of the path 'E:\www\tsp13amp\website.com\wwwroot\App_Data\Documents\Corps_Profile_userID.pdf'.
我的控制器代码:
var PDF = new Rotativa.ViewAsPdf("ProfilePrint", model) { FileName = "Corps_Profile_" + User.Identity.GetUserId() + "_" + DateTime.Now.ToString("dd-MM-yyyy")};
var fileName = PDF.FileName;
byte[] pdfBytearray = PDF.BuildPdf(ControllerContext);
var fullPath = Path.Combine(Server.MapPath("~/App_Data/Documents/"),fileName +".pdf");
var byteArray = PDF.BuildPdf(ControllerContext);
System.IO.File.WriteAllBytes(fullPath, byteArray)
我要做的是将文件存储在App_Data文件夹中,并在数据库中引用该文件,然后将使用该文件的链接,如:
<a href="~/App_Data/Documents/File.pdf" target="_blank" class="btn btn-primary">Download</a>
感谢您的帮助。
答案 0 :(得分:0)
只是为了使这个官方 - 不要在app_data中存储任何内容,除非你特别指明它将被使用。默认情况下,此文件夹未映射为返回内容,因此您需要一个HttpHandler或特定的东西来提供此文件夹中的文件。如果将它们映射到数据库中的名称,您仍然需要一种方法来返回它们。
您可以更好地创建另一个用于此目的的文件夹。