У меня есть небольшое консольное приложение, которое загружает файл в мой веб-сервис, оба работают локально на моем компьютере с Windows 10.
Код консольного приложения для загрузки файла в веб-сервис:
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 Photo Viewer или Paint. Только в фотошопе.
PNG
, похоже, вообще не имеет проблем.
Что мне не хватает? Я попытался сначала прочитать поток файлов в MemoryStream
, а затем в файл, все еще сохраняет файл с правильным размером / длиной содержимого, но без метаданных:
![enter image description here](https://i.stack.imgur.com/RlQba.png)