我需要在asp.net mvc应用程序的日期库中保存图片。我在表MimeType(nvarchar [50])和ImageData中创建了一个字段,用于将图片保存在byte []中。我用ado.net。我将图像保存在这样的表中:
private DBAppl db = new DBAppl();
public void CreateNewCar(newcar Car, HttpPostedFileBase image)
{
if (image != null)
{
Car.mimetype = image.ContentType;
Car.ImageData = new byte[image.ContentLength];
image.InputStream.Read(Car.ImageData, 0, image.ContentLength);
}
db.AddTonewcars(Car);
db.SaveChanges();
}
图片正常保存在表格中。然后我华尔特在视图中显示我的图像。我在控制器中创建方法
public FileContentResult GetImage(int newcarid)
{
DBAppl db = new DBAppl();
newcar car = (from p in db.newcars
where p.newcarid == newcarid
select p).First();
return File(car.ImageData, car.mimetype.Trim());
}
在视图中我插入了这段代码:
<% if (Model.ImageData == null)
{ %>
None
<% }
else
{ %>
<img src="<%= Url.Action("GetImage", "Cars", new { Model.newcarid }) %>" alt="<%: Model.description %>" /> <% } %>
但是图片没有加载,只有alt。帮忙,我做错了什么?我尝试在html-page的sourse代码中使用链接,但是读取该图片有错误。我查看了mozilla&#34;有关页面的信息&#34;并看到该页面有我的图片(778 kb),但它是0px x 0px。
答案 0 :(得分:1)
尝试在返回文件
之前设置标头HttpContext.Response.AddHeader("Content-Length"("Content-Type", "image/jpeg"));
或者您正在访问标题。
将image / jpeg用于jpg文件
谷歌搜索其他扩展名和文件。
答案 1 :(得分:0)
我用这种方式解决了问题:
public FileContentResult GetImage(int newcarid)
{
DBAppl db = new DBAppl();
newcar car = (from p in db.newcars
where p.newcarid == newcarid
select p).First();
return File(car.ImageData**.ToArray()**, car.mimetype.Trim());
}
课堂上:
public void CreateNewCar(newcar Car, HttpPostedFileBase image)
{
**var car = new newcar();**
if (image != null)
{
car.name = Car.name;
car.date = DateTime.Now;
car.color = Car.color;
car.picmimetype = image.ContentType;
int length = image.ContentLength;
byte[] buffer = new byte[length];
image.InputStream.Read(buffer, 0, length);
car.ImageData = buffer;
}
db.AddTonewcars(car);
db.SaveChanges();