2015-10-25 2 views
1

Мне нужно серверное большее количество Pdf, для которого требуется авторизация, чтобы иметь возможность загружать.Не разрешено загружать локальный ресурс из папки App_Data

Я прочитал, что желательно разместить их в папке App_Data.

Я создал три папки в папку App_Data:

> SetOne 

> SetTwo 

> SetThree 

мне нужно передать эти файлы на мой взгляд.

Контроллер

var files = Directory.EnumerateFiles(Server.MapPath("~/App_Data/SetOne")); 

return View(files); 

Просмотр

<ul> 
    @foreach (var fullPath in Model) 
    { 
     var fileName = Path.GetFileName(fullPath); 
     var downloadPath = @Path.GetDirectoryName(fullPath) + "\\" + @fileName; 
     <li><a href="@downloadPath">@fileName</a></li> 
    } 
</ul> 

Используя код выше, я могу перечислить содержимое папки SetOne в неупорядоченном списке, однако при попытке см. один из Pdf, которые я вижу:

Не разрешается загружать локальный ресурс: файла: /// B: /Development/MyProject/MyProject.Web/App_Data/SetOne/sampleOne.pdf

Как я могу позволить приложению, чтобы предоставить доступ к этим файлам ?

редактировать

Я также попытался создать новую папку с именем PDFS и перемещения документов на это, но я получаю то же сообщение об ошибке при просмотре в хромовых Дев инструментов.

Должен ли я использовать Http-обработчик для этой задачи?

ответ

1

Ваш подход подходит для приложения WinForms, но не должен работать в Интернете. downloadPath должен содержать URL-адрес, но не физический путь на файл (как some.com/pdfs/1.pdf)

Вы можете использовать Server.MapPath для этого случая

+0

Так что лучший способ сервера PDF с сервера ? – JsonStatham

+0

Вы должны поместить PDF в папку, доступную пользователю. Затем вам нужно сопоставить путь к серверу, чтобы получить правильный URL-адрес. –

+0

. Я разместил pdf-файл в папке PDF, и я написал метод FileResult, который называется «загрузка», это возвращает файл, однако теперь возможно, что пользователи могут напрямую просматривать мой PDF-файл папку и помочь себе? – JsonStatham

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