【问题标题】:C#/WCF pass in parameter a file pathC#/WCF 传入参数文件路径
【发布时间】: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 或更多的文件进行上传。

标签: c# wcf azure


【解决方案1】:

您正在传递从远程客户端到您的服务的路径。该路径将指向客户端上的文件。您无法在服务器上打开该路径。

要上传文件,您必须传递实际的文件数据。

【讨论】:

  • 通过 WCF 传输文件充其量是有问题的,或者最坏的情况是可笑的。
猜你喜欢
  • 1970-01-01
  • 2018-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
相关资源
最近更新 更多