【发布时间】:2018-02-28 17:57:45
【问题描述】:
考虑以下代码:
//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图片然后用这个方法下载后,返回的图片是107kb。我检查了字节是否正确存储和检索,它们确实与我上传的内容一致。如果我上传一个文本文件并返回它的内容和大小是正确的。
我认为 File() 有一些魔力,但我不知道为什么和什么?
【问题讨论】:
-
文件不应该添加任何有趣的东西。响应标头是什么样的?
-
{"date":["Thu"," 2017 年 9 月 21 日 14:39:27 GMT"],"server":["Kestrel"],"x-powered-by":[ "ASP.NET"],"传输编码":["chunked"],"content-type":["application/octet-stream"],"access-control-allow-origin":["*"] ,"x-sourcefiles":["=?UTF-8?B?QzpcZ2l0aHViXHVuaWt5dGVcc3JjXFVuaWt5dGUuU1BBXGFwaVxmaWxldXBsb2FkXGFmYzM5MTg1LWQ2MTMtNGJlYy1jYTY1LTA4ZDRmZjk3NzdiYQ==?="],"content-disposition":[ .jpg"],"connection":["close"]} @Tratcher
-
什么是
_storage,在这个例子中你从mem.Length得到什么? -
@KirkLarkin 存储是一个天蓝色的云存储和 mem.Length - 流从字节数组的长度构建它的长度
-
@Hristo 我相信这与您存储上传文件的方式有关。我相信在那个层面上正在发生一些操纵。
标签: asp.net asp.net-core