0
일반 HTML을 사용하는 것처럼 이미지를 표시해야하지만 보안상의 이유로 이미지에 일반 URL을 제공 할 수 없습니다. 대신 WebApi 서비스에서 이미지를 검색해야합니다. 나는 대답에 제공된 링크 검토 한 결과,하지만 뭔가가 작동하지 않습니다,WebApi 호출에서 검색된 이미지를 표시해야합니다.
https://stackoverflow.com/a/24985886/1481314
그리고 :이 발견했다. 내가 얻는 것은 누락 된 이미지 자리 표시 자입니다.
이
내 코드입니다 - 클라이언트 측 : angular.element('#' + imageType + '_' + itemID).html('<img src="/api/filemanagermaindata/getFile?systemName=' + baseData.CustomerData.SystemName + '&fileID=' + id + '" />')
이 내 WebApi 컨트롤러 방법
[HttpGet]
[Route("api/filemanagermaindata/getFile")]
public HttpResponseMessage GetFile(string systemName, int fileID)
{
var customerData = ValidateUser(systemName, 0);
var response = this.fileMover.GetFileDataHttpResponse(customerData.OrganizationID, fileID);
return response;
}
그리고 얻고 이미지를 반환 내 수업 방법입니다 ...
var response = new HttpResponseMessage();
try
{
FileManagerItem item = this.dataService.GetFileByID(fileID);
var fullPath = this.rootLocation + Path.Combine(item.PhysicalPath, item.Name);
if (!File.Exists(fullPath))
{
throw new Exception("Unable to locate the requested file");
}
var fileType = Path.GetExtension(item.Name).Replace(".", string.Empty);
if (ApplicationSettings.Instance.ImageFileExtensions.Contains(fileType))
{
fileType = string.Format("image/{0}", fileType);
}
using (FileStream fileStream = new FileStream(fullPath, FileMode.Open, FileAccess.Read))
{
response = new HttpResponseMessage { Content = new StreamContent(fileStream) };
response.Content.Headers.ContentType = new MediaTypeHeaderValue(fileType);
response.Content.Headers.ContentLength = fileStream.Length;
};
return response;
}
어쩌면 이것 좀 봐. http://stackoverflow.com/questions/12467546/is-there-a-recommended-way-to-return-an-image-using-asp-net-web-api –