WebClient UploadFile和在服务器上存储

时间:2019-03-12 06:48:01

标签: c# upload metadata webclient

我有一个小型的控制台应用程序,该应用程序将文件上传到我的Web服务,两者均在Windows 10计算机上本地运行。

将文件上传到Web服务的控制台应用程序代码:

using (var client = new WebClient())
{
    client.UploadProgressChanged += ...;
    client.UploadFileCompleted += ...;
    await client.UploadFileTaskAsync(wsURL, "POST", FilePath);
}

然后将Web服务代码复制到新文件中:

[OperationContract]
[WebInvoke(Method = "POST")]
public bool Upload(Stream fs)
{
    using (var file = File.Open(NewFilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite))
    {
        fs.CopyTo(file);
    }

    return true;
}

文件上传正常,并且可以在Web服务上完美存储,没有问题。

当我浏览到上传的副本(此时基本上已复制到计算机上的其他位置)并尝试打开文件时,它将无法打开。当我将原始文件的元数据与上载的文件进行比较时,元数据都在新文件中消失了。

  • EXE将不再打开。
  • JPG无法在Windows Photo Viewer或Paint中打开。仅在Photoshop中。
  • PNG似乎没有问题。

我想念什么?我尝试先将文件流读取到MemoryStream中,然后再读取到文件中,仍然使用正确的大小/内容长度但没有元数据的方式保存文件:

enter image description here

0 个答案:

没有答案