2016-02-04 2 views
1

Я пытаюсь сохранить файл в формате PDF, сформированного с использованием Rotativa в App_Data папку моего веб-приложения, но я получаю сообщение об ошибке:Сохранить файл в папку Ошибка 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> 

Спасибо за любую помощь.

+1

И папка '' 'Documents''' существует под папкой' '' App_Data'''? –

+0

Попробуйте использовать любую другую папку. Я не думаю, что вы можете сделать это в папке appdata –

+0

, папка 'Documents' существует внутри папки' App_Data'. – anand

ответ

0

Просто, чтобы сделать это официальным - не храните ничего в вашем app_data, если вы специально не используете способ его использования. Эта папка не отображается по умолчанию для возврата содержимого, поэтому вам понадобится HttpHandler или что-то конкретное, чтобы обслуживать файлы из этой папки. Если вы сопоставляете их с именем в базе данных, вам все равно нужен способ вернуть их.

Вы гораздо лучше служили для создания другой папки.

Смежные вопросы