Как вернуть любой тип файла из метода действия MVC? - PullRequest
0 голосов
/ 29 апреля 2019

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

Я пробовал с файлом изображения. Могу ли я сделать как приведенный ниже код для всех типов? это будет работать?

public ActionResult GetAttachmentById(int AttachmentId)
{
    try
    {
        byte[] AttachmentData = GetFromDatabase(AttachmentId);
        string FileExtension = GetExtensionFromDatabase(AttachmentId);
        return File(AttachmentData, FileExtension );
    }
    catch (Exception ex)
    {
        return File("", FileExtension);
    }
}

1 Ответ

1 голос
/ 29 апреля 2019

Вам необходимо определить Mimetype, имя файла и расширение динамически.

Затем вернуть объект File из действия следующим образом:

string filename = "MyFile.txt"; // Make this dynamic from the actual file
byte[] filedata = System.IO.File.ReadAllBytes(filepath);
string contentType = MimeMapping.GetMimeMapping(filepath);

var contentDisposition = new System.Net.Mime.ContentDisposition
{
    FileName = filename,
    Inline = true
};
Response.AppendHeader("Content-Disposition", contentDisposition.ToString());

return File(filedata, contentType);
...