使用网络传递带有图像的数据 api
Pass data with an image using web api
我需要在 json 响应中传递图像。
这是我的控制器:
public IHttpActionResult GetStudents()
{
var data = db.Students.ToList();
return Ok(data);
}
该代码显然 return 是每个学生的所有数据,return 是 student_image 列作为 varbinary,但我需要它作为图像传递。
我可以 return 如果图像是唯一要 returned 的图像,代码如下:
public HttpResponseMessage GetStudentImages(string id)
{
var img = (from s in db.Students select new { s.student_image, s.student_id }).Where(a => a.student_id == id).FirstOrDefault();
var result = new HttpResponseMessage();
if (img == null)
{
result.StatusCode = HttpStatusCode.NotFound;
}
else
{
result.Content = new ByteArrayContent(img.student_image);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
}
return result;
}
如何在响应中传递图像?谢谢
下面将return一个StudentModel列表,它由一个Image
属性组成,其中包含每个图像字节数组。
public class StudentModel
{
public string Name { get; set; }
public ImageModel Image { get; set; }
}
public class ImageModel
{
public string ContentType { get; private set; }
public byte[] Content { get; private set; }
public ImageModel(string contentType, byte[] content)
{
ContentType = contentType;
Content = content;
}
}
public IHttpActionResult GetStudents()
{
var data = db.Students.Select(
student => new StudentModel
{
Name = student.Name,
Image = new ImageModel("image/jpeg", student.student_image)
}
);
return Ok(data);
}
我需要在 json 响应中传递图像。 这是我的控制器:
public IHttpActionResult GetStudents()
{
var data = db.Students.ToList();
return Ok(data);
}
该代码显然 return 是每个学生的所有数据,return 是 student_image 列作为 varbinary,但我需要它作为图像传递。
我可以 return 如果图像是唯一要 returned 的图像,代码如下:
public HttpResponseMessage GetStudentImages(string id)
{
var img = (from s in db.Students select new { s.student_image, s.student_id }).Where(a => a.student_id == id).FirstOrDefault();
var result = new HttpResponseMessage();
if (img == null)
{
result.StatusCode = HttpStatusCode.NotFound;
}
else
{
result.Content = new ByteArrayContent(img.student_image);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
}
return result;
}
如何在响应中传递图像?谢谢
下面将return一个StudentModel列表,它由一个Image
属性组成,其中包含每个图像字节数组。
public class StudentModel
{
public string Name { get; set; }
public ImageModel Image { get; set; }
}
public class ImageModel
{
public string ContentType { get; private set; }
public byte[] Content { get; private set; }
public ImageModel(string contentType, byte[] content)
{
ContentType = contentType;
Content = content;
}
}
public IHttpActionResult GetStudents()
{
var data = db.Students.Select(
student => new StudentModel
{
Name = student.Name,
Image = new ImageModel("image/jpeg", student.student_image)
}
);
return Ok(data);
}