我在asp.net mvc项目的控制器中运行以下代码。我想让用户查看或下载我在rackspace上存储在Cloud Files上的文件。
var identity =
new CloudIdentity()
{
Username = "username",
APIKey = "apikey"
};
var storage = new CloudFilesProvider(identity);
Stream jpgStream = new MemoryStream();
storage.GetObject("files.container", "1.jpg", jpgStream);
Stream pdfStream = new MemoryStream();
storage.GetObject("files.container", "2.pdf", pdfStream);
var jpgResult = File(jpgStream, "Image/jpg", "1.jpg");
var pdfResult = File(pdfStream, "Application/pdf", "2.pdf");
当我返回pdfResult时,上面的代码有效。我得到了正确的文件。但是当我返回jpgResult时,浏览器将1.jpg下载为空的0KB文件。
我这样做是对的吗?知道问题可能是什么吗?
答案 0 :(得分:3)
我添加后问题解决了:
jpgStream.Position = 0;
pdfStream.Position = 0;
在File()调用之前。根据问题:File is empty and I don't understand why. Asp.net mvc FileResult
我不知道为什么这不是pdf文件的问题。
答案 1 :(得分:0)
您也可以使用GetObjectSaveToFile方法。