gpt4 book ai didi

asp.net-mvc-4 - 移植到 MVC4 后,Windows Azure UploadFromStream 不再有效 - 指针?

转载 作者:行者123 更新时间:2023-12-03 20:20:43 24 4
gpt4 key购买 nike

将我的 MVC3/.Net 4.5/Azure 解决方案更新为 MVC4。
在升级后的 MVC4 解决方案中,我将图像上传到 blob 存储的代码似乎每次都失败。但是,当我运行我的 MVC3 解决方案时工作正常。在 DLL 中进行上传的代码没有改变。

我在 MVC3 和 MVC4 解决方案中上传了相同的图像文件。我在流中检查过,它似乎没问题。在这两种情况下,我都在我的机器上本地运行代码,我的连接指向云中的 blob 存储。

任何用于调试的指针?升级到 MVC4 时我可能不知道的任何已知问题?
这是我的上传代码:

        public string AddImage(string pathName, string fileName, Stream image)
{
var client = _storageAccount.CreateCloudBlobClient();
client.RetryPolicy = RetryPolicies.Retry(3, TimeSpan.FromSeconds(5));
var container = client.GetContainerReference(AzureStorageNames.ImagesBlobContainerName);

image.Seek(0, SeekOrigin.Begin);
var blob = container.GetBlobReference(Path.Combine(pathName, fileName));
blob.Properties.ContentType = "image/jpeg";

blob.UploadFromStream(image);

return blob.Uri.ToString();
}

最佳答案

我设法解决了它。由于某种原因,直接从 HttpPostedFileBase 读取流不起作用。只需将其复制到新的内存流中即可解决。
我的代码

public string StoreImage(string album, HttpPostedFileBase image)
{
var blobStorage = storageAccount.CreateCloudBlobClient();
var container = blobStorage.GetContainerReference("containerName");
if (container.CreateIfNotExist())
{
// configure container for public access
var permissions = container.GetPermissions();
permissions.PublicAccess = BlobContainerPublicAccessType.Container;
container.SetPermissions(permissions);
}

string uniqueBlobName = string.Format("{0}{1}", Guid.NewGuid().ToString(), Path.GetExtension(image.FileName)).ToLowerInvariant();
CloudBlockBlob blob = container.GetBlockBlobReference(uniqueBlobName);
blob.Properties.ContentType = image.ContentType;
image.InputStream.Position = 0;
using (var imageStream = new MemoryStream())
{
image.InputStream.CopyTo(imageStream);
imageStream.Position = 0;
blob.UploadFromStream(imageStream);
}

return blob.Uri.ToString();
}

关于asp.net-mvc-4 - 移植到 MVC4 后,Windows Azure UploadFromStream 不再有效 - 指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14888398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com