2016-10-25 32 views
0

所以我的问题是我需要从azure发布的webform读取文件,用户使用asp.net FileUpload选择文件,但是我无法读取它保存,我需要保存才能读取它。如何使用天蓝色做到这一点?有没有另一种方式来读取文件而不保存它?如何使用asp uploadFile保存azure文件

谢谢!

+0

【如何下载和阅读从蔚蓝的BLOB容器文件(http://stackoverflow.com/questions/29726115/how-to-download-and-read-files-工作从-Azure的BLOB容器) –

回答

1

您无需保存上传的文件即可阅读。原始内容通过FileContents 属性作为字节流提供。 PostedFile属性提供更多信息,如文件长度和内容类型。您可以通过其InputStream属性阅读内容。

SaveAs只是读取字节流并将字节写入文件。

如果文件很小,可以直接通过FileBytes属性访问它的字节。否则,您可以从流中读取字节并将其复制到另一个流中。

您可以创建数据从流来跟UploadFromStream一个CloudBlockBlob:

var connectionString=CloudConfigurationManager.GetSetting("StorageConnectionString"); 
var acct = CloudStorageAccount.Parse(connectionString); 
var client = acct.CreateCloudBlobClient(); 

var blob = container.GetBlockBlobReference(fileName); 
blob.UploadFromStream(FileUpload1.FileContents); 

一般来说,文件和BLOB操作总是提供一种方式来使用流。这将是不可能的大文件,否则

+0

所以你说这是可以读取该文件,而不只是使用的FileUpload性质节约? – Shikaizi

+0

是的,正如Pangiotis Kanavos所说** FileUpload.FileContent **可用于blob将文件上传到Azure。 ** FileConent **是指向文件的Stream对象,Azure blob支持使用流上传文件。请有一个try.'blob.UploadFromStream(FileUpload1.FileContent);' –

+0

谢谢你们!它为我工作! – Shikaizi