Azure Block-blob存储在连续上传相同的文件失败



i'M使用Azure Block Blob存储来保留文件。这是我上传文件的代码。

i m在同一请求中以下面的同一文件调用该方法;该方法的第一个呼叫按预期保存文件,但是第二个调用将文件保存为长度为0,因此我无法显示图像,也不会发生错误。

    [HttpPost]
    public ActionResult Index(HttpPostedFileBase file)
    {
        UploadFile(file);
        UploadFile(file); 
        return View();
    }
      public static string UploadFile(HttpPostedFileBase file){
        var credentials = new StorageCredentials("accountName", "key");
        var storageAccount = new CloudStorageAccount(credentials, true);
        var blobClient = storageAccount.CreateCloudBlobClient();
        var container = blobClient.GetContainerReference("images");
        container.CreateIfNotExists();
        var containerPermissions = new BlobContainerPermissions
        {
            PublicAccess = BlobContainerPublicAccessType.Blob
        };
        container.SetPermissions(containerPermissions);
        var blockBlob = container.GetBlockBlobReference(Guid.NewGuid().ToString());
        blockBlob.Properties.ContentType = file.ContentType;
        var azureFileUrl = string.Format("{0}", blockBlob.Uri.AbsoluteUri);
        try
        {
            blockBlob.UploadFromStream(file.InputStream);
        }
        catch (StorageException ex)
        {
            throw;
        }
        return azureFileUrl ;
    }

我只是找到下面的解决方案,就像我的那样奇怪,但没有帮助。

奇怪的突然错误"要编写的字节数量大于指定的contentlength"

有什么想法吗?谢谢

您需要将流的位置重置回开始。将此线放在您的上载方法的顶部。

file.InputStream.Seek(0, SeekOrigin.Begin);

最新更新