file - 从控制器发送 IFormFile - Asp Net Core
问题描述
我正在使用 IFormFile 接口上传一些文件
<input required asp-for="FeaturedPhoto" type="file" />
该文件正在正确上传,但现在我想将其加载回我的模型中,以便可以在编辑视图中使用它。
图片正在上传到服务器,只有路径和名称被保存到数据库中。
obj.FeaturedPhoto = new FormFile(); // Need help building this
问候,
解决方案
您可以将上传的文件作为 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
推荐阅读
- java - 静态成员在新生成的线程中 null
- quarkus - Quarkus uber/fat jar 名称:不尊重版本 1.13.3.Final 中的 project.build.finalName,正如文档所建议的那样
- unit-testing - 调用 FakeItEasy 模拟 mediatr.send 方法失败断言
- c++ - 在 C++ 中使用构造函数时结构数据发生变化
- nginx - redis 启动错误“redis-server.service 的作业失败,因为超出了配置的资源限制。”
- laravel - Laravel:仅调用 1 条消息进行 2 次或更多验证
- javascript - 使用新条目更新 React 状态后的奇怪行为
- angular - Ngxs state.result 以角度 html 显示数据对象
- javascript - Laravel 8:AJAX 使用 onchange 上传文件
- sonarqube - 缺少分析所需的以下类:SonarQube