Не разрешено загружать локальный ресурс: file: // in ASP. NET Core - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть изображения, сохраненные на моем диске C, следующим образом:

C:\Users\Public\images\employees

У меня есть модель вида в моем проекте, которая содержит свойство string ImageUrl. В моем контроллере я выбираю изображение в соответствии с именем изображения:

var model = new EmployeeViewModel
{
    FirstName = employeeDetails.FirstName,
    FullName = employeeDetails.FullName,
    LastName = employeeDetails.LastName,
    ImageUrl = new System.Uri(Path.Combine(@"C:\Users\Public\images\employees", "John.jpg")).AbsoluteUri
};

Затем я передаю эту модель в представление. В моем представлении я хочу отобразить изображение следующим образом:

Но я получаю исключение

Не разрешено загружать локальный ресурс: file: / / in ASP. NET Core

Может кто-нибудь, пожалуйста, помогите с этим. Кроме того, мое приложение будет развернуто в домене. Как я могу убедиться, что изображение все еще будет отображаться?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

передача этой модели в представление. В моем представлении я хочу отобразить изображение

Если вы хотите отобразить изображения, хранящиеся в папке C drive на вашем сервере, на странице просмотра, вы можете обратиться к следующий фрагмент кода для обслуживания файлов из ожидаемого места.

app.UseStaticFiles();

app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider(
        Path.Combine(@"C:\Users\Public\images", "employees")),
    RequestPath = "/employees"
});

В действии контроллера

var model = new EmployeeViewModel
{
    FirstName = employeeDetails.FirstName,
    FullName = employeeDetails.FullName,
    LastName = employeeDetails.LastName,
    ImageUrl = "/employees/John.jpg"
};

Для получения дополнительной информации об обслуживании файлов stati c и PhysicalFileProvider, пожалуйста, проверьте:

0 голосов
/ 13 апреля 2020

Я создал. Net Скрипку, чтобы помочь продемонстрировать то, что, по моему мнению, вы испытываете, заполняя некоторые пробелы. Он может быть найден здесь.

https://dotnetfiddle.net/S6deCz

При попытке использования различных браузеров подчеркивается, что они запрещают удаленному коду доступ к файлам с локального компьютера.

I предложил бы лучший способ решить эту проблему и позволить всем получить к ней доступ, это убедиться, что изображения сотрудников хранятся на веб-сервере (IIS из вопросов и ответов выше).

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

Надеюсь, это поможет.

...