Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在模型中添加图像上载属性_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# 如何在模型中添加图像上载属性

C# 如何在模型中添加图像上载属性,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我正在制作一个简单的电影数据库,并尝试插入一个图像属性,如下图所示: 如何使用我拥有的属性创建类似的内容: public class Movie { public int ID { get; set; } public string Title { get; set; } public DateTime ReleaseDate { get; set; } public string Genre { get; set; }

我正在制作一个简单的电影数据库,并尝试插入一个图像属性,如下图所示:

如何使用我拥有的属性创建类似的内容:

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; }
        }
    }
公共类电影
{
公共int ID{get;set;}
公共字符串标题{get;set;}
公共日期时间释放日期{get;set;}
公共字符串类型{get;set;}
公共十进制价格{get;set;}
公共类MovieDBContext:DbContext
{
公共DbSet电影{get;set;}
}
}
所以,当我想要创建新电影时,我可以选择上传一张图片


更新您的模型以存储图像

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; }
        }
    }
公共类电影
{
公共int ID{get;set;}
公共字符串标题{get;set;}
公共日期时间释放日期{get;set;}
公共字符串类型{get;set;}
公共十进制价格{get;set;}
//用于存储图像的新属性
公共字节[]映像{get;set;}
//请随意将其移出您的实体
[未映射]
公共HttpPostedFileBase内容{get;set;}
公共类MovieDBContext:DbContext
{
公共DbSet电影{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();
}
公共异步任务添加(电影模型)
{
if(ModelState.IsValid)
{
使用(var reader=new System.IO.BinaryReader(model.Content.InputStream))
{
movie.Image=reader.ReadBytes(model.Content.ContentLength);
}
//插入数据库上下文
db.Movies.Add(电影);
等待db.saveChangesSync();
返回操作(“索引”);
}
返回视图();
}
请随意添加验证以检查文件内容类型和长度。

非常简单

首先,在模型中添加字符串属性。这样,您将只保存图像路径(假设您将图像上载到文件夹中)

然后将上载控件添加到页面中以上载图像

我不久前在这里写过:(最后有一个下载的例子)


如果由于某些技术限制而无法将图像保存到文件夹中,您可以按照heymega前面指出的那样将其保存到数据库中。

位图或Byte[]数据类型。只需在您的电影类上创建另一个属性。您希望将图像存储在数据库中还是直接从Web服务器引用它们?是的,我希望将它们与其他属性一起添加到db中,以便我可以像此图片一样浏览图像;看看这个mvc/ajax教程,或者这是一个更完整的教程嗨,谢谢你的帮助,但是我遇到了一些错误类型或名称空间名称'ReadBytes'在名称空间'System.Diagnostics.Eventing.Reader'Error 2'System.IO.BinaryReader.BinaryReader(System.IO.Stream)中不存在“有一些是无效的arguments@john抱歉,我用错了二进制读取器和readbyte参数。问题是,我对asp.net mvc几乎2个月都不熟悉,所以现在这对我来说有点太难了;(,这么多东西只是为了插入一个图像,那么有没有一些更适合初学者的教程可以帮助我?