Хотя это было помечено как ответ, это было не совсем то, что я хотел, поэтому я продолжал искать. Теперь, когда я разобрался, вот что у меня есть:
public FileContentResult GetFile(string id)
{
byte[] fileContents;
using (MemoryStream memoryStream = new MemoryStream())
{
using (Bitmap image = new Bitmap(WebRequest.Create(myURL).GetResponse().GetResponseStream()))
image.Save(memoryStream, ImageFormat.Jpeg);
fileContents = memoryStream.ToArray();
}
return new FileContentResult(fileContents, "image/jpg");
}
Конечно, это для получения изображения через URL. Если вы просто хотите получить изображение с файлового сервера, я бы предположил, что вы замените эту строку:
using (Bitmap image = new Bitmap(WebRequest.Create(myURL).GetResponse().GetResponseStream()))
С этим:
using (Bitmap image = new Bitmap(myFilePath))
РЕДАКТИРОВАТЬ: Неважно, это для обычного MVC. для веб-API у меня есть это:
public HttpResponseMessage Get(string id)
{
string fileName = string.Format("{0}.jpg", id);
if (!FileProvider.Exists(fileName))
throw new HttpResponseException(HttpStatusCode.NotFound);
FileStream fileStream = FileProvider.Open(fileName);
HttpResponseMessage response = new HttpResponseMessage { Content = new StreamContent(fileStream) };
response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpg");
response.Content.Headers.ContentLength = FileProvider.GetLength(fileName);
return response;
}
Что очень похоже на то, что есть у OP.
person
vbullinger
schedule
11.02.2013