我已经从这里获得了这个代码,用ASP.Net在Windows Azure上上传blob文件:
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");
// Create or overwrite the "myblob" blob with contents from a local file.
using (var fileStream = System.IO.File.OpenRead(@"path\myfile"))
{
blockBlob.UploadFromStream(fileStream);
}
这段代码运行正常,但我需要的是在ASP.Net中使用FileUpload控件上传文件。我需要更改路径,并将其替换为FileUpload上的文件路径。但是我在研究中发现的是FileUpload不会返回文件的完整路径。无论如何,文件的上传是由FileUpload完成的吗?我不知道如何使用FileUpload上传它。任何人都可以帮助我吗?
答案 0 :(得分:4)
解决了我的问题:
我替换了代码
using (var fileStream = System.IO.File.OpenRead(@"path\myfile"))
{
blockBlob.UploadFromStream(fileStream);
}
到
using (fileASP.PostedFile.InputStream)
{
blockBlob.UploadFromStream(fileASP.PostedFile.InputStream);
}
fileASP
是FileUpload
控件的ID。它现在工作正常。
答案 1 :(得分:0)
试试这个:
if (FileUpload1.HasFile)
{
blockBlob.Properties.ContentType = FileUpload1.PostedFile.ContentType;
blockBlob.UploadFromStream(FileUpload1.FileContent);
}
答案 2 :(得分:0)
您的解决方案中有一些缺失的细节。想到内容类型。 this question
有一个可靠的解决方案