asp.net - 使用FileUpload上传到Windows Azure

时间:2013-09-11 10:51:00

标签: asp.net azure

我已经从这里获得了这个代码,用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上传它。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:4)

解决了我的问题:

我替换了代码

using (var fileStream = System.IO.File.OpenRead(@"path\myfile"))
{
    blockBlob.UploadFromStream(fileStream);
}

using (fileASP.PostedFile.InputStream)
{
blockBlob.UploadFromStream(fileASP.PostedFile.InputStream);
}

fileASPFileUpload控件的ID。它现在工作正常。

答案 1 :(得分:0)

试试这个:

if (FileUpload1.HasFile)
{
    blockBlob.Properties.ContentType = FileUpload1.PostedFile.ContentType;
    blockBlob.UploadFromStream(FileUpload1.FileContent);
}

答案 2 :(得分:0)

您的解决方案中有一些缺失的细节。想到内容类型。 this question

有一个可靠的解决方案