asp.net webapi에서 파일 다운로드 및 반환

네이선 쿠퍼

URL에서 이미지를 다운로드하여 컨트롤러를 통해 제공하고 싶습니다. 이상적으로는 바이트 배열 등을 만들려고 시도하는 것보다 가능한 한 많이 스트리밍하고 싶습니다.

foo.ImageUrl소비자 에게 제공 하는 것이 아니라 컨트롤러를 통해 파일을 다운로드하는 이유 는 URL이 http이고 혼합 콘텐츠를 피하기 위해 프록시를 사용하기 때문입니다. 이 작업은 절대 URL을 html img태그 에 넣어 호출됩니다.

이것이 내가 지금까지 가지고있는 것입니다.

문제는 이미지에 내용이없는 것 같습니다. img태그는 빈보고 내 브라우저에서로 이동하면 난 그냥 다운로드 헤더와 아무것도 시도를 참조?

URL에서 다운로드하여 호출자에게 스트림으로 반환하려면 어떻게해야합니까?

[HttpGet]
[AllowAnonymous]
[Route(template: "Reward/FooLogo/{fooId}/bar/{barId}", Name = "FooLogo")]
public async Task<StreamContent> FooLogo(int fooId, int barId)
{
    var foo = await GetFooAsync(fooId, barId);
    if (string.IsNullOrWhiteSpace(foo?.ImageUrl))
    {
        throw new HttpResponseException(HttpStatusCode.NotFound);
    }

    using (var response = await WebRequest.Create(foo.ImageUrl).GetResponseAsync())
    {
        // todo check content type
        var responseStream = response.GetResponseStream();

        var content = new StreamContent(responseStream);
        content.Headers.ContentType = new MediaTypeHeaderValue(response.ContentType);
        content.Headers.ContentLength = response.ContentLength;

        return content;
    }
}
네이선 쿠퍼

제거하는 것만으로 using는 문제가 해결되지 않는 것 같습니다. 나는 그것을 조금 다시 썼고 이것이 내 문제를 해결 한 것 같습니다.

[HttpGet]
[AllowAnonymous]
[Route(template: "Reward/FooLogo/{fooId}/bar/{barId}", Name = "FooLogo")]
public async Task<HttpResponseMessage> FooLogo(int fooId, int barId)
{
    var foo = await GetFooAsync(fooId, barId);
    if (string.IsNullOrWhiteSpace(foo?.ImageUrl))
    {
        throw new HttpResponseException(HttpStatusCode.NotFound);
    }

    using (var client = new HttpClient())
    {
        var res = await client.GetAsync(paymentMethod.ImageUrl);
        var response = Request.CreateResponse(HttpStatusCode.OK);
        response.Content = new StreamContent(await res.Content.ReadAsStreamAsync());
        response.Content.Headers.ContentType = res.Content.Headers.ContentType;

        return response;
    }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Axios 요청에서 ASP.NET Core API의 다운로드 파일 반환

분류에서Dev

ASP.NET Core 3.1에서 대용량 파일 업로드 및 다운로드?

분류에서Dev

ASP.NET MVC 파일 다운로드 및 jQuery 매개 변수

분류에서Dev

ZIP 파일 다운로드 및 브라우저 ASP.NET MVC에서 Rotativa PDF 출력

분류에서Dev

WCF에서 ZIP 파일 다운로드-ASP.NET CORE

분류에서Dev

asp.net의 폴더에서 파일 다운로드

분류에서Dev

Asp.net에서 파일 다운로드

분류에서Dev

ASP.NET에서 파일이 다운로드되지 않음

분류에서Dev

ASP.NET MVC4에서 파일 업로드 및 저장

분류에서Dev

asp.net MVC에서 XML 파일로드 및 읽기

분류에서Dev

Blazor Webassembly 및 ASP.NET Core를 사용한 안전한 파일 다운로드

분류에서Dev

ASP.NET에서 다운로드 할 때 파일이 다른 이유 (Blob으로 AJAX 다운로드)

분류에서Dev

SQL 데이터베이스에 저장된 파일 경로를 기반으로 폴더에서 ASP.Net 다운로드 파일

분류에서Dev

클래식 ASP에서 ASP.NET WebAPI로 XML을 반환 할 수 없음

분류에서Dev

asp .net에서 다운로드가 완료되면 다운로드 한 엑셀 파일을 여는 방법

분류에서Dev

NodeJS에서 다운로드 및 파일 저장이 완료된 후 비동기 함수에서 반환

분류에서Dev

ASP.NET WebAPI는 파일을 생성하고 나중에 다운로드 할 수 있도록 저장하고 다운로드 후 삭제합니다.

분류에서Dev

ASP.NET Core에서 클라이언트로 파일을 다운로드하고 반응하는 방법은 무엇입니까?

분류에서Dev

asp.net core에서 파일 경로를 URL로 변환

분류에서Dev

ASP.NET MVC 5 및 Entity Framework를 사용하여 MP3 파일을 다운로드하는 방법

분류에서Dev

빌드에서 ASP.NET .cshtml razor 파일 변환

분류에서Dev

파일이 asp.net mvc에있는 경우 링크 반환

분류에서Dev

동일한 ASP.Net MVC 프로젝트에서 Unity MVC 및 Unity WebAPI를 사용하는 방법

분류에서Dev

Blazor 클라이언트 애플리케이션에서 ASP.NET Core API에서 파일 다운로드

분류에서Dev

ASP.NET MVC에서 비디오 파일을 다운로드 할 수 없습니다.

분류에서Dev

ASP.NET의 다른 서버에서 파일 업로드

분류에서Dev

ASP .NET Web API 반환 JSON 파일

분류에서Dev

Postman 파일 및 json은 Content-Type Header .net 코어에서도 415를 반환합니다.

분류에서Dev

일부 처리 및 파일 .NET MVC 다운로드

Related 관련 기사

  1. 1

    Axios 요청에서 ASP.NET Core API의 다운로드 파일 반환

  2. 2

    ASP.NET Core 3.1에서 대용량 파일 업로드 및 다운로드?

  3. 3

    ASP.NET MVC 파일 다운로드 및 jQuery 매개 변수

  4. 4

    ZIP 파일 다운로드 및 브라우저 ASP.NET MVC에서 Rotativa PDF 출력

  5. 5

    WCF에서 ZIP 파일 다운로드-ASP.NET CORE

  6. 6

    asp.net의 폴더에서 파일 다운로드

  7. 7

    Asp.net에서 파일 다운로드

  8. 8

    ASP.NET에서 파일이 다운로드되지 않음

  9. 9

    ASP.NET MVC4에서 파일 업로드 및 저장

  10. 10

    asp.net MVC에서 XML 파일로드 및 읽기

  11. 11

    Blazor Webassembly 및 ASP.NET Core를 사용한 안전한 파일 다운로드

  12. 12

    ASP.NET에서 다운로드 할 때 파일이 다른 이유 (Blob으로 AJAX 다운로드)

  13. 13

    SQL 데이터베이스에 저장된 파일 경로를 기반으로 폴더에서 ASP.Net 다운로드 파일

  14. 14

    클래식 ASP에서 ASP.NET WebAPI로 XML을 반환 할 수 없음

  15. 15

    asp .net에서 다운로드가 완료되면 다운로드 한 엑셀 파일을 여는 방법

  16. 16

    NodeJS에서 다운로드 및 파일 저장이 완료된 후 비동기 함수에서 반환

  17. 17

    ASP.NET WebAPI는 파일을 생성하고 나중에 다운로드 할 수 있도록 저장하고 다운로드 후 삭제합니다.

  18. 18

    ASP.NET Core에서 클라이언트로 파일을 다운로드하고 반응하는 방법은 무엇입니까?

  19. 19

    asp.net core에서 파일 경로를 URL로 변환

  20. 20

    ASP.NET MVC 5 및 Entity Framework를 사용하여 MP3 파일을 다운로드하는 방법

  21. 21

    빌드에서 ASP.NET .cshtml razor 파일 변환

  22. 22

    파일이 asp.net mvc에있는 경우 링크 반환

  23. 23

    동일한 ASP.Net MVC 프로젝트에서 Unity MVC 및 Unity WebAPI를 사용하는 방법

  24. 24

    Blazor 클라이언트 애플리케이션에서 ASP.NET Core API에서 파일 다운로드

  25. 25

    ASP.NET MVC에서 비디오 파일을 다운로드 할 수 없습니다.

  26. 26

    ASP.NET의 다른 서버에서 파일 업로드

  27. 27

    ASP .NET Web API 반환 JSON 파일

  28. 28

    Postman 파일 및 json은 Content-Type Header .net 코어에서도 415를 반환합니다.

  29. 29

    일부 처리 및 파일 .NET MVC 다운로드

뜨겁다태그

보관