【发布时间】:2019-08-02 13:53:13
【问题描述】:
我有一个小型控制台应用程序,它将文件上传到我的网络服务,两者都在我的 Windows 10 机器上本地运行。
将文件上传到 Web 服务的控制台应用代码:
using (var client = new WebClient())
{
client.UploadProgressChanged += ...;
client.UploadFileCompleted += ...;
await client.UploadFileTaskAsync(wsURL, "POST", FilePath);
}
然后是网络服务代码,将流复制到一个新文件中:
[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;
}
看起来文件上传正常,并且在网络服务上存储得非常好,没有问题。
当我浏览到上传的副本(此时基本上复制到我机器上的另一个位置)并尝试打开文件时,它不会打开。当我将原始文件的元数据与上传的文件进行比较时,元数据在新文件中全部消失了。
-
EXE不会再打开了。 -
JPG无法使用 Windows 照片查看器或画图打开。仅在 Photoshop 中。 -
PNG似乎完全没有问题。
我错过了什么?我尝试先将文件流读入MemoryStream,然后再读入文件,仍然以正确的大小/内容长度保存文件,但没有元数据:
【问题讨论】:
标签: c# upload metadata webclient