我有一个小型的控制台应用程序,该应用程序将文件上传到我的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
中,然后再读取到文件中,仍然使用正确的大小/内容长度但没有元数据的方式保存文件: