我正在创建一个简单的电影数据库,我正在尝试插入图片属性,如下图所示:
如何使用我拥有的属性创建与此类似的东西:
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
}
因此,当我想创建新电影时,我可以选择上传图片。
答案 0 :(得分:0)
更新您的模型以存储图片
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
//New Property to Store Image
public byte[] Image { get;set;}
//Feel free to move this out of your entities
[NotMapped]
public HttpPostedFileBase Content { get;set;}
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
}
添加动作以保存电影
public async Task<ActionResult> Add(Movie model)
{
if(ModelState.IsValid)
{
using (var reader = new System.IO.BinaryReader(model.Content.InputStream))
{
movie.Image = reader.ReadBytes(model.Content.ContentLength);
}
//Plug in your db context
db.Movies.Add(movie);
await db.SaveChangesAsync();
return redirectToAction("Index");
}
Return View();
}
随意添加验证以检查文件contentType&amp;长度。
答案 1 :(得分:0)
很简单。
首先,在模型中添加字符串属性。这样,您将只保存图像路径(假设您将图像上传到文件夹中)。
然后在页面中添加上传控件以上传图片。
我刚刚在这里写过这篇文章:http://davidsonsousa.net/en/post/how-to-upload-a-file-using-mvc-3-and-ajax(最后有一个下载示例)
如果由于某些技术限制而无法将图像保存在文件夹中,可以像heymega先前指出的那样将它们保存在数据库中。