아래 코드는 완벽하게 작동합니다. 지정된 이미지를 제공합니다.이미지 제공 - 이미지 리소스 닫기
public HttpResponseMessage Get(string id)
{
string fileName = string.Format("{0}.png", id);
FileStream fileStream = File.Open(System.Web.Hosting.HostingEnvironment.MapPath("~/Images/" + fileName), FileMode.Open);
HttpResponseMessage response = new HttpResponseMessage { Content = new StreamContent(fileStream) };
response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpg");
response.Content.Headers.ContentLength = fileStream.Length;
return response;
}
이미지 파일을 읽으려고 얻은 리소스를 릴리스하기 만하면 다음과 같이 코드가 수정되었습니다.
public HttpResponseMessage Get(string id)
{
string fileName = string.Format("{0}.png", id);
using (FileStream fileStream = File.Open(System.Web.Hosting.HostingEnvironment.MapPath("~/Images/" + fileName), FileMode.Open))
{
HttpResponseMessage response = new HttpResponseMessage { Content = new StreamContent(fileStream) };
response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpg");
response.Content.Headers.ContentLength = fileStream.Length;
return response;
}
}
"내용을 스트림에 복사하는 중 오류가 발생했습니다". 예. 리소스가 스트리밍되기 전에 닫습니다.
하지만 문제는 이미지를 제공하고 처리되지 않은 리소스를 닫는 방법입니까? Asp.Net 웹 API 2 이상. 의견을 보내 주셔서 감사합니다.
'StreamContent'를 사용하고'MediaTypeHeaderValue'를 응답 헤더에 추가하십시오. – boosts