请考虑以下代码:
//get bytes
var query = await _storage.Get(attachment.Id, General.ContainerType.Uploads);
//just for the sake of debugging
var mem = new MemoryStream(query);
//return the uploaded file
return File(mem, MimeTypesMap.GetMimeType(attachment.FileName), attachment.FileName);
上传67kb的.jpg图像然后使用此方法下载后,返回的图像为107 kb。我已经检查了字节是否正确存储和检索,它们确实与我上传的内容是一致的。如果我上传文本文件并将其返回,则内容和大小都是正确的。
我假设File()有些神奇,但我无法弄清楚为什么和什么?
答案 0 :(得分:0)
它不是关于File
,而是与MemoryStream
有关,
用于获取存储在内存流中的字节传递整个流是不适合使用其方便的ToArray()
方法的方法。您可以尝试使用Binarywriter
答案 1 :(得分:0)
通过提供azure blob存储文件的URL并添加几分钟的权限来解决:https://stackoverflow.com/a/30468172/4487530