2012-10-22 234 views
2

我們已經開始使用Azure blob storage api將上傳的Blob存儲在我們的網站上,圖像運行良好,但是當我們上傳word/excel文檔並返回Url和嘗試從該URL下載文件並打開它,我們在Excel或Word中發現錯誤:存儲Excel/Word文檔Windows Azure Blob存儲文件損壞

「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; 

我們返回地址和存儲,對已上載並使用它作爲文件下載文件的鏈接。

文件下載正常,與上傳的尺寸完全相同,但不會打開。

任何幫助將不勝感激,因爲它必須是如此明顯的東西,但它逃避我害怕。

回答

0

您使用什麼代碼將文檔保存到Azure?

ContentType上傳和下載的價值是什麼?

您是否使用UTF8編碼上傳流?

看一看this upload example,它在上傳之前設置ContentType和UTF8編碼。