【问题标题】:When upload Bitmap stream to Azure storage, it store zero/empty image将位图流上传到 Azure 存储时,它存储零/空图像
【发布时间】:2015-08-27 08:11:44
【问题描述】:

我正在使用以下代码将 MemoryStream 从位图图像上传到我的 Microsoft azure 存储帐户:

                         MemoryStream memoryStream = new MemoryStream();

                       img.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);

                       blob.Properties.ContentType = model.File.ContentType;
                       blob.UploadFromStream(memoryStream);

使用上面的代码会发生什么,它将一个空图像上传到 Azure 存储:(!(我找到了名称,但文件大小为零!)!

       if (model.File != null && model.File.ContentLength > 0)
                {
                    Bitmap original = null;
                    var name = "newimagefile";
                    var errorField = string.Empty;

                    errorField = "File";
                    name = Path.GetFileNameWithoutExtension(model.File.FileName);
                    original = Bitmap.FromStream(model.File.InputStream) as Bitmap;
                   if (original != null)
                     {
                       var img = CreateImage(original, model.X, model.Y, model.Width, model.Height);



                       CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
                                   CloudConfigurationManager.GetSetting("StorageConnectionString"));

                       CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

                       CloudBlobContainer container = blobClient.GetContainerReference("company"); // must always be lowercase
                                                 container.CreateIfNotExists();

                       container.SetPermissions(
       new BlobContainerPermissions
       {
           PublicAccess =
               BlobContainerPublicAccessType.Blob
       });


                       CloudBlockBlob blob = container.GetBlockBlobReference(imgName + ".png");

                       MemoryStream memoryStream = new MemoryStream();

                       img.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);

                       blob.Properties.ContentType = model.File.ContentType;
                       blob.UploadFromStream(memoryStream);

}

请帮忙!

【问题讨论】:

    标签: asp.net-mvc azure cloud


    【解决方案1】:

    我认为您需要在上传之前将位置设置回流的开头

    img.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);
    blob.Properties.ContentType = model.File.ContentType;
    memoryStream.Position = 0;
    blob.UploadFromStream(memoryStream);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-17
      • 1970-01-01
      • 2017-03-11
      • 2016-04-30
      • 2020-01-25
      • 2021-01-16
      • 2019-05-26
      • 2020-01-09
      相关资源
      最近更新 更多