从控制器-Asp Net Core

时间:2018-11-25 22:24:57

标签: file asp.net-core upload .net-core asp.net-core-2.1

我正在使用IFormFile接口上传一些文件

<input required asp-for="FeaturedPhoto" type="file" />

文件已正确上传,但是现在我想将此文件重新加载到模型中,以便可以在“编辑”视图中使用。

图像正在服务器中上传,只有路径和名称被保存到数据库中。

obj.FeaturedPhoto = new FormFile(); // Need help building this

此致

1 个答案:

答案 0 :(得分:0)

您可以将上传的文件作为base64编码的字符串返回:

[ProducesResponseType(200, Type = typeof(string))]
public async Task<IActionResult> UploadImage(IFormFile file)
{
    // your other code
    if (file.Length > 0)
    {
        using (var ms = new MemoryStream())
        {
            file.CopyTo(ms);
            var fileBytes = ms.ToArray();
            string s = Convert.ToBase64String(fileBytes);
            return new OkObjectResult(s);
        }
    }
}

在客户端,您可以像这样显示图像:

<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
    9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="test image" />

要使用以上内容,您需要了解ContentType。您可以使用以下方法找到它:

file.ContentType