Решение загрузить файл изображения через сервис WCF? - PullRequest
0 голосов
/ 29 мая 2018

В течение последних 3-4 дней занимаясь серфингом, загружая, запуская и исправляя проблемы с доступными демонстрационными проектами в Интернете, пока что ни один из них не работает.

Мне нужно загрузить изображение с помощью веб-службы WCF.Где со стороны клиента я хотел бы загрузить его с помощью формы (multipart / form-data), включая некоторое описание файла.

Любое решение работает с правильным ответом?Мой разум действительно переполнен, пытаясь найти другое решение.Тот, который у меня изначально есть, я могу загрузить текстовый файл, где файл создается с некоторым дополнительным содержанием в нем.Мне нужно загрузить файл изображения.

------------ cH2ae0GI3KM7GI3Ij5ae0ei4Ij5Ij5Content-Disposition: форма-данные;имя = \ "Имя файла \"тестовый файл получает загрузку ...

Когда я загружаю файл изображения, файл изображения становится пустым.

Исходный код (одна имплантация), метод, с помощью которого я получаю.TXT-файл, как указано выше, в случае изображения его пустым (или, скажем, поврежден, не знаю)

    private string uplaodFile(Stream stream)
    {
        StreamReader sr = new StreamReader(stream);
        int length = sr.ReadToEnd().Length;
        byte[] buffer = new byte[length];
        stream.Read(buffer, 0, length);
        FileStream f = new FileStream(Path.Combine(HostingEnvironment.MapPath("~/Upload"), "test.png"), FileMode.OpenOrCreate);
        f.Write(buffer, 0, buffer.Length);
        f.Close();
        stream.Close();
        return "Recieved the image on server";
    }

другой;

public Stream FileUpload(string fileName, Stream stream)
        {
            string FilePath = Path.Combine(HostingEnvironment.MapPath("~/Upload"), fileName);
            int length = 0;
            using (FileStream writer = new FileStream(FilePath, FileMode.Create))
            {
                int readCount;
                var buffer = new byte[8192];
                while ((readCount = stream.Read(buffer, 0, buffer.Length)) != 0)
                {
                    writer.Write(buffer, 0, readCount);
                    length += readCount;
                }
            }

            return returnJson(new { resp_code = 302, resp_message = "occurred." });
        }
...