Форматы URI не поддерживаются при чтении файла в байты? - PullRequest
0 голосов
/ 09 мая 2019

Я делаю API в рамках asp.net Web API.Я хочу прочитать файл и преобразовать его в байты и вернуть его клиенту. Но при чтении файла возникает исключение, формат URL не поддерживается?URL с fileName отправляется клиентом. Я хочу получить файл с этого URL и преобразовать его в байты.Расскажите мне, как мне это сделать?

  [Route("api/product/v1/displayimage")]
    [AllowAnonymous]
    [HttpPost]
    //[GZipCompression]
    public async Task<byte[]> DisplayImage([FromBody] FilesVM model)
    {
        try
        {
            var UrlBase = Url.Content(model.BaseURL);

            //var UrlBase = Url.Content("~/Images/Users/5-signs-march14");
            // MemoryStream workStream = new MemoryStream();
            //string contentType = MimeMapping.GetMimeMapping(fileName);
            byte[] byteInfo = System.IO.File.ReadAllBytes(UrlBase);
            return await Task.FromResult(byteInfo);
        }
        catch (Exception ex)
        {
            throw new HttpResponseException(HttpStatusCode.InternalServerError);
        }
    }

1 Ответ

0 голосов
/ 09 мая 2019

Url.Content возвращает только строку (http://localhost/Image...).. Если вы хотите получить фактический контент, вам придется его скачать. Вот пример:

using (var client = new WebClient())
        {
            return await Task.FromResult(client.DownloadData(Url.Content("~/Images/Users/5-signs-march14")));
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...