如何解决asp.net core 3.1 Razor Pages 将图像作为字节 [] 加载到视图中
我必须在 Intranet 应用程序上保存许多小文件。 我将我的图像作为 type=file
<abp-input asp-for="Storage.File" type ="file" />
将其传递给 IForm
public IFormFile File { get; set; }
在 OnPostAsync 中将其转换为 byte[] 并保存。
public async Task<IActionResult> OnPostAsync()
{
using (var memoryStream = new MemoryStream())
{
//turn it into a memory stream file is an IFormFile
await Storage.File.copyToAsync(memoryStream);
//pass the byte[] to Content
Storage.Content = memoryStream.ToArray();
}
然后在另一端我将它提取为一个流,将它转换为一个表单文件并使用这个伟大的 SO post - How to deal with input=file / IFormFile two-way binding in Razor Pages
string imgType = "data:" + GetMimeTypes(Storage) + ";base64,";
string filename = Storage.Name + Storage.ImageExt;
var input = Storage.Content;
using var stream = new System.IO.MemoryStream(input);
var formFile = new FormFile(stream,stream.Length,Storage.Name,Storage.Name);
formFile.Headers = new HeaderDictionary()
{
new keyvaluePair<string,StringValues>("Content-disposition",$"form-data; name=\"{Storage.Name}\"; filename=\"{filename}\""),//"form-data; name=\"chicken\"; filename=\"chicken.png\""
new keyvaluePair<string,StringValues>("Content-Type",imgType ),// "data:image/png;base64,"
};
Storage.Image = formFile;
然后我将它传递给 IFormFile
[DataType(DataType.Upload)]
[FromForm(Name = "Image")]
public IFormFile Image { get; set; }
最后在 Razor 页面中列出了一些失败的结构
2<img src="Storage.Image" />
遗憾的是,这就是我结束的地方,没有图像,src 中也没有任何内容。
我尝试过类似的 <img src="Storage.Image" />
甚至 <abp-input asp-for="Storage.Image" type ="image"/>
。遗憾的是没有成功。
所有的数据都是以<abp-input asp-for="Storage.Name"/>
等class.property的结构传入的
非常感谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。