Возврат изображения с диска как часть модели и предотвращение доступа к этим файлам неавторизованным пользователям - PullRequest
0 голосов
/ 18 октября 2018

Я сохраняю изображения пользователя (скажем, Avatar) из формы ввода, например,

C: \ server_folder \

со случайным именем, например xcvdfgdfg.jpeg и сохраните путь к нему в БД.

При загрузке профиля пользователя, например, Имя, Фамилия ... Я бы хотел включить это изображение.

Похоже, легкая задача - я 'Я просто собираюсь использовать

_ image

Но это не работает - изображение не отображается, но я могу получить доступэто когда я ввожу этот URL вручную, в то время как когда я сохраняю это изображение в папке

wwwroot / images

, тогда он правильно работает с путем:

_ Смайлик

Итак, я бы хотел переместить папку

wwwroot / images

до

C: \ server_folder

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

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

Вот как я решил это:

Я возвращаю модель, одним из свойств которой является строка Base64.

public class UserProfile
{
    (...)
    public string ImageBase64 { get; set; }
}

Я конвертирую файл в Base64 с помощью этого метода:

private string ToBase64(string path)
{
    if (System.IO.File.Exists(path))
    {
        Byte[] bytes = System.IO.File.ReadAllBytes(path);
        return Convert.ToBase64String(bytes);
    }
    return "";
}

, а затем в HTML

image

0 голосов
/ 19 октября 2018

Как упоминает Пратик, я бы использовал метод расширения UseStaticFiles.Вы можете поместить это в Configure метод вашего Startup.cs.Вы можете использовать несколько из них, если нет конфликтующих RequestPath свойств

app.UseStaticFiles(); // For the wwwroot folder

app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider("C:\server_folder")),
    RequestPath = "/images"
});

Взяты (адаптированы): Документы Microsoft

0 голосов
/ 18 октября 2018

Используйте это для настройки / настройки Статического каталога содержимого в IIS

IIS7, web.config, чтобы разрешить только статический обработчик файлов в каталоге / загрузках веб-сайта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...