无法从HTML上传将图像上传到Azure Blob

马修·韦斯特雷特(Matthew Verstraete)

我正在尝试将用户通过网页上传到Azure存储的图像保存为blob。我已经构建了代码并对其进行了测试,我可以毫无问题地连接并创建Blob,但是它似乎不能正确保存文件,因为当我通过HTTP访问文件时,我只得到了“损坏的图像”图标。如果我直接从Azure门户下载文件并尝试在图像编辑器(绘画)中将其打开,则会收到一条消息,指出该文件不是有效的位图文件。您可以在看到我刚刚尝试上传的文件

https://gisstore01.blob.core.windows.net/ffinfofiles/Test/Core/Logo.jpg

这是我用来上传文件的代码。我不知道这里出了什么问题,有什么建议吗?

        var StorageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"].ToString());
        var BlobClient = StorageAccount.CreateCloudBlobClient();
        var Container = BlobClient.GetContainerReference("ffinfofiles");
        var FileExtension = Path.GetExtension(UploadedFile.FileName.ToLower());
        var BlobBlock = Container.GetBlockBlobReference(FileName + FileExtension);
        BlobBlock.Properties.ContentType = UploadedFile.ContentType;

        using (UploadedFile.InputStream)
        {
            BlobBlock.UploadFromStream(UploadedFile.InputStream);
        }

哦,这是一个使用C#的ASP.Net 4.6应用程序。

马修·吉马良斯(Matheus Guimaraes)

我运行了一个快速的原型,并且设法成功上传和下载了该图像,因此我怀疑您的问题可能是以下之一:

1)默认情况下,Blob容器不允许公共访问。图像可能目前存储良好,但是您的浏览器没有查看该图像的权限。查看您的“ ffinfofiles” blob容器设置,并确保将“公共读取访问”设置为true

2)您用于设置上载调用的信息都是动态的,因此始终存在作为参数传递的数据错误的可能性。UploadedFile.FileName.ToLower()再次检查正确的广告,更重要的UploadedFile.ContentType是正确的

3)继续上面第2项中的思想,您必须确保它UploadedFile.InputStream是有效的。除非您确实从本地磁盘以外的其他来源流式传输文件内容,否则我实际上只是读取文件字节并使用BlobBlock.UploadFromByteArray()重载。请记住,尽管这样做是要先将文件有效地读取到内存中,但是在这种情况下,如果文件足够小(例如jpg),这不会有问题

结论:

这是我用作概念证明的代码。

var StorageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"].ToString());
var BlobClient = StorageAccount.CreateCloudBlobClient();
var Container = BlobClient.GetContainerReference("ffinfofiles");
Container.CreateIfNotExists();

var BlobBlock = Container.GetBlockBlobReference(filename);
BlobBlock.Properties.ContentType = "image/jpg";
var fileContent = System.IO.File.ReadAllBytes(Server.MapPath("~/images/" + filename));
BlobBlock.UploadFromByteArray(fileContent,0,fileContent.Length);

PS:要进一步改善这一点,请考虑使用Async重载,即BlobBlock.UploadFromByteArrayAsync()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法将多个 azure blob 内容(文本和图像)上传到 Azure SQL 表

来自分类Dev

将Blob文件/图像上传到Mysql

来自分类Dev

将Blob文件/图像上传到Mysql

来自分类Dev

MySQL-将图像上传到BLOB最大上传大小?

来自分类Dev

使用ASP.NET中的文件上传器将图像上传到Azure Blob?

来自分类Dev

从Bot框架访问上传到Azure Blob的图像

来自分类Dev

如何将图像和文件上传到Azure Blob Node.js

来自分类Dev

手动将文件上传到Azure Blob存储

来自分类Dev

将异步上传到Azure Blob存储永远不会返回

来自分类Dev

使用Javascript将Largefile上传到Azure Blob

来自分类Dev

将Vhd批量上传到Azure页面Blob

来自分类Dev

将文件上传到Azure Blob存储中

来自分类Dev

Windows Azure-使用队列将文件上传到Blob

来自分类Dev

使用NodeJS(CompoundJS)将Blob上传到Windows Azure容器

来自分类Dev

如何将VHD并行上传到Azure BLOB存储?

来自分类Dev

如何从Azure的Blob存储将数据上传到Jupyter Notebook?

来自分类Dev

无法将 blob 上传到节点 js 后端

来自分类Dev

Flutter AZURE BLOB图像上传-如何将使用移动相机捕获的图像上传到Azure Blob存储

来自分类Dev

快速将文件上传到Azure Blob

来自分类Dev

我已成功创建容器,但无法使用Rest API将图像/ pdf上传到我的Blob容器

来自分类Dev

Blob文件上传-我正在将图像文件从本地系统上传到Azure Blob容器。上传后,文件大小显示为0B,没有扩展名

来自分类Dev

无法使用Azure功能节点将文件上传到Azure Blob存储

来自分类Dev

无需移动服务即可将图像上传到Azure Blob存储的体系结构

来自分类Dev

使用不带Azure SDK的REST API将流上传到Azure Blob存储

来自分类Dev

在本地工作时将图像上传到Blob存储时出现错误404

来自分类Dev

无法上传到Azure Blob存储:远程服务器返回错误:(400)错误的请求

来自分类Dev

将文件从客户端上传到Azure Blob存储| MVC

来自分类Dev

如何使用Python SDK将大文件(〜100mb)上传到Azure blob存储?

来自分类Dev

如何使用Python将文件夹递归上传到Azure Blob存储

Related 相关文章

  1. 1

    无法将多个 azure blob 内容(文本和图像)上传到 Azure SQL 表

  2. 2

    将Blob文件/图像上传到Mysql

  3. 3

    将Blob文件/图像上传到Mysql

  4. 4

    MySQL-将图像上传到BLOB最大上传大小?

  5. 5

    使用ASP.NET中的文件上传器将图像上传到Azure Blob?

  6. 6

    从Bot框架访问上传到Azure Blob的图像

  7. 7

    如何将图像和文件上传到Azure Blob Node.js

  8. 8

    手动将文件上传到Azure Blob存储

  9. 9

    将异步上传到Azure Blob存储永远不会返回

  10. 10

    使用Javascript将Largefile上传到Azure Blob

  11. 11

    将Vhd批量上传到Azure页面Blob

  12. 12

    将文件上传到Azure Blob存储中

  13. 13

    Windows Azure-使用队列将文件上传到Blob

  14. 14

    使用NodeJS(CompoundJS)将Blob上传到Windows Azure容器

  15. 15

    如何将VHD并行上传到Azure BLOB存储?

  16. 16

    如何从Azure的Blob存储将数据上传到Jupyter Notebook?

  17. 17

    无法将 blob 上传到节点 js 后端

  18. 18

    Flutter AZURE BLOB图像上传-如何将使用移动相机捕获的图像上传到Azure Blob存储

  19. 19

    快速将文件上传到Azure Blob

  20. 20

    我已成功创建容器,但无法使用Rest API将图像/ pdf上传到我的Blob容器

  21. 21

    Blob文件上传-我正在将图像文件从本地系统上传到Azure Blob容器。上传后,文件大小显示为0B,没有扩展名

  22. 22

    无法使用Azure功能节点将文件上传到Azure Blob存储

  23. 23

    无需移动服务即可将图像上传到Azure Blob存储的体系结构

  24. 24

    使用不带Azure SDK的REST API将流上传到Azure Blob存储

  25. 25

    在本地工作时将图像上传到Blob存储时出现错误404

  26. 26

    无法上传到Azure Blob存储:远程服务器返回错误:(400)错误的请求

  27. 27

    将文件从客户端上传到Azure Blob存储| MVC

  28. 28

    如何使用Python SDK将大文件(〜100mb)上传到Azure blob存储?

  29. 29

    如何使用Python将文件夹递归上传到Azure Blob存储

热门标签

归档