存储Excel / Word文档Windows Azure Blob存储文件已损坏

时间:2012-10-22 13:55:48

标签: c# asp.net-mvc azure-storage

我们已经开始使用Azure blob存储api将上传的blob存储在我们的网站上,图像工作正常,但是当我们上传word / excel文档并返回Url并尝试从该URL下载文件并打开它我们在Excel或Word中出错:

“Excel无法打开文件”somefile.xlsx“,因为格式或文件扩展名无效。请验证文件是否已损坏且文件扩展名是否与文件格式匹配”。

我知道我必须遗漏一些明显但不确定的东西,下面是我们正在使用的代码:

  CloudBlobContainer container = GetCloudBlobContainer();

  Guid guid = Guid.NewGuid();
  string storeFilename = String.Concat(mediaType.ToString(), "/", guid, "_", filename);

  var blob = container.GetBlobReference(storeFilename);
  blob.Properties.ContentType = contentType;
  blob.UploadFromStream(stream);

  return blob.Uri.AbsolutePath;

我们返回Url并将其存储在已上传的文件中,并将其用作下载文件的链接。

文件下载正常,与上传的文件大小完全相同但不会打开。

任何帮助都会受到极大的赞赏,因为它必须是如此明显的东西,但它让我害怕。我很害怕。

1 个答案:

答案 0 :(得分:0)

您使用什么代码将文档保存到Azure?

上传和下载时ContentType的价值是多少?

您是否对上传流进行了UTF8编码?

在上传之前,请先查看设置ContentType和UTF8编码的this upload example