1

当我尝试将 pdf 文档上传到 azure 存储时,它会使用特定的 URL 上传到 blob 存储。问题是当我尝试使用该 URL 在浏览器中打开 pdf 文档时,它没有打开。

我检查了源 pdf 文档,上传的 blob 大小分别为 2.8 Mb 和 0 Kb。将该 blob 保存到我的系统后,当我尝试使用 Adob​​e Reader 打开它时,它会显示错误:

'Adobe Reader 无法打开 doc.pdf 文件类型不受支持或文件损坏'。

看法:

<% using (Html.BeginForm("GetPdf", "Home", FormMethod.Post, new { enctype = multipart/form-data" })){ %>

    <input type="file" id="Document" name="Document" /><br />
    <input type="submit" value="Upload" /><br /><%} %>

控制器:

// When I upload the pdf document by default am getting below:
// properties[ContentLength(size of document), ContentType(application/pdf),
// FileName(name of the document), InputStream(System.web.HttpInputStream)]

Public Action Result GetPdf(HttpPostedFileBase Document)
{
    var inputstream = Document.InputStream;
    var filename = Document.FileName;
    var doctype=Document.ContentType;              

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting

("StorageConnectionString"));
      CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
                CloudBlobContainer container = blobClient.GetContainerReference("documentscontainer");               
                container.CreateIfNotExists();              
                var permissions = container.GetPermissions();
                permissions.PublicAccess = BlobContainerPublicAccessType.Blob;
                container.SetPermissions(permissions);              
                string uniqueBlobName = string.Format("rewhizzdocuments/{0}",filename);
                CloudBlockBlob blob = container.GetBlockBlobReference(uniqueBlobName);
                blob.Properties.ContentType = doctype;    
                blob.UploadFromStream(inputstream);
}

当我应用相同的代码(用于 pdf 文档的代码)上传图像时,它们会被上传到 blob 存储中,我可以使用 blob URL 获取图像。

任何有关如何解决此问题的想法将不胜感激。

4

0 回答 0