我们很难弄清楚如何在不丢失图像透明度的情况下将png
文件上传到Azure Blob存储。
我们正在使用Azure的Storage SDK,其代码如下:
var storageAccount = CloudStorageAccount.Parse(*blob_connection_string*);
//create client to work with blobs
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
//already created container via azure management portal, set container reference
CloudBlobContainer container = blobClient.GetContainerReference("brand");
foreach (string file in httpRequest.Files)
{
var postedFile = httpRequest.Files[file];
CloudBlockBlob blockBlob = container.GetBlockBlobReference(postedFile.FileName);
blockBlob.UploadFromStream(postedFile.InputStream);
}
我们尝试在上传之前强制使用ContentType属性,如下所示:
blockBlob.Properties.ContentType = "image/png";
但无论是否有此属性都不起作用。
答案 0 :(得分:0)
那么,对于遇到此问题的人,我们找到了解决方案:
问题在于使用Microsoft .Net Image对象。根据MSDN,此对象仅适用于PNG 32位:
https://msdn.microsoft.com/pt-br/library/1kcb3wy4%28v=vs.110%29.aspx?f=255
我们已经更改了上传例程,直接从输入中获取发布的文件二进制文件,并像魅力一样工作!
再次感谢推动我们使用此解决方案的想法!
拥抱