【发布时间】:2015-12-03 19:31:15
【问题描述】:
我目前正在使用 C#、WCF 和 azure 存储开发 Web 服务。我需要制作一个上传方法,但我的上传文件路径有问题。确实我不能在路径文件中传递参数,它总是在方法中返回 null 我该如何处理?代码如下:
public void uploadFiles(string path, string ContainerName)
{
// Connect to the storage account's blob endpoint
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Create the blob storage container
CloudBlobContainer container = blobClient.GetContainerReference(ContainerName);
container.CreateIfNotExists();
// Create the blob in the container
CloudBlockBlob blob = container.GetBlockBlobReference("name");
using (var fileStream = System.IO.File.OpenRead(path))
{
blob.UploadFromStream(fileStream);
}
}
字符串路径直接为空所以不能加@。
【问题讨论】:
-
在您的情况下
path的值是多少..?你能告诉我们吗..? -
如果
path为空,请检查您调用uploadFiles(...)的位置 -
请不要“提前致谢”并且绝对请停止在底部添加签名。我们在这里不这样做。此外,您的姓名和头像已经在您的帖子底部。欲了解更多信息,请查看Meta Stack Overflow。
-
不要使用 WCF 传输文件。将文件二进制文件放在可访问的存储中:本地磁盘、天蓝色存储、amazon S3 等,并传递允许您从该位置检索文件的信息。虽然 WCF 能够传递文件,但使用它是一个非常糟糕的选择。对于物理移动文件,samba/ftp 是最佳选择,但很可能最终会使用 HTTP。对于使用真正的文件协议的复杂性,我只会对 500MB 或更多的文件进行上传。