【发布时间】:2017-03-30 19:50:42
【问题描述】:
我一直在尝试将文件上传到 Azure 存储容器。 当我在本地运行我的网络应用程序时,如果文件 not 在网站 root 中,我会收到 错误:
Could not find file 'C:\Program Files (x86)\IIS Express\test.txt'.
如果我将文件复制到网络应用根文件夹,它可以正常工作。
在云上运行网络应用我收到一个错误:
Could not find file 'D:\Windows\system32\test.txt'.
我无法从 HttpPostedFileBase 对象获取完整的本地文件路径。
代码:
private string UploadFile(HttpPostedFileBase file, string folder)
{
try
{
var date = DateTime.UtcNow.ToString("yyyyMMdd-hhmmss-");
var fileName = Path.GetFileName(file.FileName);
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=http;AccountName=test;AccountKey=asdfasfasdasdf");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(folder);
bool b = container.CreateIfNotExists();
CloudBlockBlob blockBlob = container.GetBlockBlobReference(date + fileName);
blockBlob.Properties.ContentType = file.ContentType;
using (var fileStream = System.IO.File.OpenRead(fileName))
{
blockBlob.UploadFromStream(fileStream);
}
return blockBlob.Uri.AbsoluteUri;
}
catch (Exception ex)
{
return ex.Message;
}
【问题讨论】:
标签: azure azure-storage azure-blob-storage