当我尝试将 pdf 文档上传到 azure 存储时,它会使用特定的 URL 上传到 blob 存储。问题是当我尝试使用该 URL 在浏览器中打开 pdf 文档时,它没有打开。
我检查了源 pdf 文档,上传的 blob 大小分别为 2.8 Mb 和 0 Kb。将该 blob 保存到我的系统后,当我尝试使用 Adobe 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 获取图像。
任何有关如何解决此问题的想法将不胜感激。