【发布时间】:2016-10-25 10:45:29
【问题描述】:
所以我的问题是我需要从 azure 发布的网络表单中读取文件,用户使用 asp.net FileUpload 选择文件,但不保存就无法读取,我需要保存才能读取它。如何使用天蓝色做到这一点?有没有其他方法可以在不保存的情况下读取文件?
谢谢!
【问题讨论】:
所以我的问题是我需要从 azure 发布的网络表单中读取文件,用户使用 asp.net FileUpload 选择文件,但不保存就无法读取,我需要保存才能读取它。如何使用天蓝色做到这一点?有没有其他方法可以在不保存的情况下读取文件?
谢谢!
【问题讨论】:
您无需保存上传的文件即可阅读。原始内容可通过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 操作总是提供一种使用流的方法。否则无法处理大文件
【讨论】:
blob.UploadFromStream(FileUpload1.FileContent);