Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Is流读取可以生成并向blob存储发送Null_C#_Azure_Azure Storage_Azure Web App Service_Azure Storage Blobs - Fatal编程技术网

C# Is流读取可以生成并向blob存储发送Null

C# Is流读取可以生成并向blob存储发送Null,c#,azure,azure-storage,azure-web-app-service,azure-storage-blobs,C#,Azure,Azure Storage,Azure Web App Service,Azure Storage Blobs,我对文件使用流:内存流、流读取或文件流,例如 byte[] buff = System.IO.File.ReadAllBytes(open.FileName); System.IO.MemoryStream ms = new System.IO.MemoryStream(buff); 我想将它发送到blob存储,此时我的blob是空的,是因为逐流读取文件,还是因为它引用了其他问题,例如blob或CloudStorageAccount连接字符串上的未配置 在开始从该流上载到blob之前,请确保您

我对文件使用流:内存流、流读取或文件流,例如

byte[] buff = System.IO.File.ReadAllBytes(open.FileName);
System.IO.MemoryStream ms = new System.IO.MemoryStream(buff);

我想将它发送到blob存储,此时我的blob是空的,是因为逐流读取文件,还是因为它引用了其他问题,例如blob或CloudStorageAccount连接字符串上的未配置

在开始从该流上载到blob之前,请确保您的流位于
0
。如上述评论所述,您可以尝试以下方法:

ms.Position = 0


在开始从该流上载到blob之前,请确保您的流位于
0
。如上述评论所述,您可以尝试以下方法:

ms.Position = 0


只需使用下面的代码。不需要转换内存流,您可以使用blob.UploadfromStream方法将流传递到blob存储

StorageCredentials creds = new StorageCredentials(
                ConfigurationManager.AppSettings["accountName"],
                ConfigurationManager.AppSettings["accountKey"]
                );
            CloudStorageAccount account = new CloudStorageAccount(creds, useHttps: true);
            CloudBlobClient client = account.CreateCloudBlobClient();
            CloudBlobContainer contain = client.GetContainerReference("your container name");
            contain.CreateIfNotExists();
    CloudBlockBlob blob = contain.GetBlockBlobReference("your blob name");
    using (var stream = System.IO.File.OpenRead("your file"))
                    blob.UploadFromStream(stream);

只需使用下面的代码。不需要转换内存流,您可以使用blob.UploadfromStream方法将流传递到blob存储

StorageCredentials creds = new StorageCredentials(
                ConfigurationManager.AppSettings["accountName"],
                ConfigurationManager.AppSettings["accountKey"]
                );
            CloudStorageAccount account = new CloudStorageAccount(creds, useHttps: true);
            CloudBlobClient client = account.CreateCloudBlobClient();
            CloudBlobContainer contain = client.GetContainerReference("your container name");
            contain.CreateIfNotExists();
    CloudBlockBlob blob = contain.GetBlockBlobReference("your blob name");
    using (var stream = System.IO.File.OpenRead("your file"))
                    blob.UploadFromStream(stream);

对不起,但是。。。你的问题到底是什么?我不明白。你的流是否可能被定位在最后?在调用上载方法之前,请尝试执行
ms.Position=0
。HTH.@DavidMakogon一次当我想在blob中上载时,我试图调用流读取;另一次当我想在blob存储中存储之前对文件进行一些修改时,我试图调用流读取。我没有内容,我想这是因为调用流阅读两次。我必须在上传文件之前写一行代码,以便将文件开头的指针向后移动并定位到zero@GauravMantri非常感谢,我认为你说的完全正确。在某些情况下,我需要调用流读取两次,并且在将文件上载到存储器上之前必须移动指针的起始位置:file.InputStream.Seek(0,SeekOrigin.Begin);或memorystream.Position=0抱歉,但是。。。你的问题到底是什么?我不明白。你的流是否可能被定位在最后?在调用上载方法之前,请尝试执行
ms.Position=0
。HTH.@DavidMakogon一次当我想在blob中上载时,我试图调用流读取;另一次当我想在blob存储中存储之前对文件进行一些修改时,我试图调用流读取。我没有内容,我想这是因为调用流阅读两次。我必须在上传文件之前写一行代码,以便将文件开头的指针向后移动并定位到zero@GauravMantri非常感谢,我认为你说的完全正确。在某些情况下,我需要调用流读取两次,并且在将文件上载到存储器上之前必须移动指针的起始位置:file.InputStream.Seek(0,SeekOrigin.Begin);或memorystream.Position=0