ASP.NET MVC3: загрузка изображения через контроллер - PullRequest
7 голосов
/ 03 июня 2011

Я попытался использовать ответ из здесь , но это не сработало. У меня есть следующий код:

public ActionResult ShowImage() 
{
    using (FileStream stream = new FileStream(Path.Combine(Server.MapPath("/App_Data/UserUpload/asd.png")), FileMode.Open))
    {
        FileStreamResult result = new FileStreamResult(stream, "image/png");
        result.FileDownloadName = "asd.png";
        return result;
    }

}

Когда я открываю страницу, я получаю сообщение об ошибке: «Невозможно получить доступ к закрытому файлу». Я немного погуглил, но нашел только эту ошибку, связанную с загрузкой. Что вызывает проблему здесь?

1 Ответ

9 голосов
/ 03 июня 2011

Попробуй так:

public ActionResult ShowImage() 
{
    var file = Server.MapPath("~/App_Data/UserUpload/asd.png");
    return File(file, "image/png", Path.GetFileName(file));
}

или если вы хотите отдельное имя файла:

public ActionResult ShowImage() 
{
    var path = Server.MapPath("~/App_Data/UserUpload");
    var file = "asd.png";
    var fullPath = Path.Combine(path, file);
    return File(fullPath, "image/png", file);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...