var obj = client.GetObject(bucketName, objectid);
using (var requestStream = obj.Content)
{
byte[] mbyte = new byte[(int)requestStream.Length];
while (requestStream.Read(mbyte, 0, mbyte.Length) > 0)
{
}
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = Encoding.GetEncoding("GB2312");// Encoding.UTF8;
Response.AddHeader("Content-Disposition", "attachment; filename=" + outputFileName);
Response.AddHeader("Content-Length", mbyte.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.BinaryWrite(mbyte);
Response.Flush();
Response.End();
}
使用阿里云的对象存储功能。下载文件流,然后保存成对应的文件 。 这段代码 txt文件保存没有问题 ,但是docx保存打开就显示乱码了。请路过的大神帮忙看下,是不是哪里没有设置好。有没有解决方法。
采用了阿里云oss的其他方式,可以成功下载文件了
中文编码问题吧,改成:
Response.ContentEncoding = Encoding.GetEncoding("utf-8")
这个之前试过的,Encoding.UTF8 或者 Encoding.GetEncoding("utf-8") 还是一样的。不太清楚是什么原因,用了其他方式解决了。