2017-01-10 15 views
0

У меня есть веб-приложение ASP.NET MVC, расположенное в c: \ inetpub \ sites \ websiteВозможно ли приложение ASP.NET MVC для чтения файлов из папки в другом месте на веб-сервере?

Внутри него у меня есть возможность загрузить PDF-файлы.

Файлы PDF хранятся в другом месте, например. C: \ Data \ PDF-файлов

Могу ли я прочитать то из C: \ Data \ папка PDF-файлов из моей веб-приложение, если установить правильные разрешения с

IIS AppPool {Application имя пула}

Отношения

ответ

2

Да, вы можете сделать это из ASP.NET MVC контроллера-действия, как это:

public FileResult Download() 
{ 
    string filePath = @"c:\data\pdffiles\doc.pdf"; 
    byte[] fileBytes = System.IO.File.ReadAllBytes(filePath); 
    string fileName = Path.GetFileName(filePath); 

    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Pdf, fileName); 
} 

Даже короче - если вы не хотите, чтобы переопределить имя файла, когда d ownloaded.

public FileResult Download() 
{ 
    string filePath = @"c:\data\pdffiles\doc.pdf"; 

    return File(filePath, MimeMapping.GetMimeMapping(filePath)); 
} 

Если вам нужны пользовательские типы MIME, см этот ответ: https://stackoverflow.com/a/14108040/2972

+1

Кажется, что нужно работать отлично, указав папку непосредственно. Мое веб-приложение не может получить к нему никаких проблем. –

0

Вы можете сделать это. Для этого вам нужно создать виртуальную прямую в IIS на свой веб-сайт, а затем вы можете использовать этого виртуального директора, который вы можете сопоставить с папкой, отличной от папки проекта.

+0

Так что я не могу получить доступ к папке непосредственно в c: \ data \ pdffiles из моего приложения wen, если я устанавливаю разрешения для IIS APPPOOL {Имя пула приложений}? –

+0

Да. Причина, по которой IIS APPPool также рассматривает папки сборки, которые включены в проект. –

+0

Даже это хорошая практика для настройки виртуального каталога, так как он прост в управлении, и он также является отраслевым стандартом для управления папками со стороны проекта или веб-сайта –