ASP.NET MVC3中要怎么实现在前台上传文字和图片路径到数据库

时间:2022-02-09 08:58:33
已经做好可以上传文字信息的添加功能,但是还想可以添加图片。可以的话希望能够将图片上传到后台,然后返回它的路径和其他文字信息一起提交到数据库。如果不一起提交,要怎么保证文字和图片是对应的。
这是上传信息Create.cshtml的页面,想让它可以在文字旁边红框或其他空的位置一起上传图片
ASP.NET MVC3中要怎么实现在前台上传文字和图片路径到数据库
这是控制器Create方法的代码
ASP.NET MVC3中要怎么实现在前台上传文字和图片路径到数据库
这是模型的代码
ASP.NET MVC3中要怎么实现在前台上传文字和图片路径到数据库
希望提供代码和一定的文字解说,只给代码没有步骤新手看不太懂

10 个解决方案

#1


求帮忙啊,有人能帮忙吗

#2


上传图片:
public ActionResult Create(jj_Link jj_link,HttpPostedFileBase LinkImg)
        {
            if (ModelState.IsValid)
            {
                string picname = "";
                if (LinkImg != null)
                {
                    string strExtension = System.IO.Path.GetExtension(LinkImg.FileName.ToLower());
                    string allowFile = System.Configuration.ConfigurationManager.AppSettings["allowImgFile"];
                    if (allowFile.IndexOf(strExtension.Substring(1, 3)) < 0)
                    {
                        ResultInfo info = new ResultInfo(false, "允许上传文件格式:" + allowFile.Replace("|", "/"));
                        if (!info.State)
                        {
                            return RedirectToAction("Create", new { info = info.Info });
                        }
                    }
                    picname = OperateFile.CreateFileName() + System.IO.Path.GetExtension(LinkImg.FileName);
                    LinkImg.SaveAs(Server.MapPath("/UploadFile/" + picname));
                }

                jj_link.LinkImg = picname;
                db.jj_Link.Add(jj_link);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(jj_link);
        }

#3


取到值插入数据库就行了
图片在上传之后得到路径

#4


你可以分两次处理,先将图片上传,得到保存路径后,再将路径和其它数据一起提交服务器

#5


引用 4 楼 starfd 的回复:
你可以分两次处理,先将图片上传,得到保存路径后,再将路径和其它数据一起提交服务器

那要怎么把路径保存下来,然后在Index页面一起提交?

#6


预先提交图片阿,分两次,图片部分用个上传控件,上传完后就能得到它在服务器上的路径了阿

#7


前台 添加 <input type='file' name='up1'>
这里主要注意 前台的name和action的对应,都叫 up1
[ValidateInput(false)]
        [HttpPost]
        public ActionResult Create( HttpPostedFileBase up1)
        {

                    string imgName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg";
                    string imgFilePath = Server.MapPath(imgUrl) + imgName;
                    up1.SaveAs(imgFilePath);

            return View();
        }

#8


引用 6 楼 starfd 的回复:
预先提交图片阿,分两次,图片部分用个上传控件,上传完后就能得到它在服务器上的路径了阿

我之前找到一些控制器和实体类的代码,控制器改到红线部分就不会了
ASP.NET MVC3中要怎么实现在前台上传文字和图片路径到数据库
实体类之前就弄好文字部分了,现在就添加了一行红线的部分用来存储图片的路径
ASP.NET MVC3中要怎么实现在前台上传文字和图片路径到数据库
不好意思,我是新手但又很想完成这个,上面也不知道有没有错,能帮我补完他吗?

#9


用uploadify插件吧

#10


楼主问题解决了么

#1


求帮忙啊,有人能帮忙吗

#2


上传图片:
public ActionResult Create(jj_Link jj_link,HttpPostedFileBase LinkImg)
        {
            if (ModelState.IsValid)
            {
                string picname = "";
                if (LinkImg != null)
                {
                    string strExtension = System.IO.Path.GetExtension(LinkImg.FileName.ToLower());
                    string allowFile = System.Configuration.ConfigurationManager.AppSettings["allowImgFile"];
                    if (allowFile.IndexOf(strExtension.Substring(1, 3)) < 0)
                    {
                        ResultInfo info = new ResultInfo(false, "允许上传文件格式:" + allowFile.Replace("|", "/"));
                        if (!info.State)
                        {
                            return RedirectToAction("Create", new { info = info.Info });
                        }
                    }
                    picname = OperateFile.CreateFileName() + System.IO.Path.GetExtension(LinkImg.FileName);
                    LinkImg.SaveAs(Server.MapPath("/UploadFile/" + picname));
                }

                jj_link.LinkImg = picname;
                db.jj_Link.Add(jj_link);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(jj_link);
        }

#3


取到值插入数据库就行了
图片在上传之后得到路径

#4


你可以分两次处理,先将图片上传,得到保存路径后,再将路径和其它数据一起提交服务器

#5


引用 4 楼 starfd 的回复:
你可以分两次处理,先将图片上传,得到保存路径后,再将路径和其它数据一起提交服务器

那要怎么把路径保存下来,然后在Index页面一起提交?

#6


预先提交图片阿,分两次,图片部分用个上传控件,上传完后就能得到它在服务器上的路径了阿

#7


前台 添加 <input type='file' name='up1'>
这里主要注意 前台的name和action的对应,都叫 up1
[ValidateInput(false)]
        [HttpPost]
        public ActionResult Create( HttpPostedFileBase up1)
        {

                    string imgName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg";
                    string imgFilePath = Server.MapPath(imgUrl) + imgName;
                    up1.SaveAs(imgFilePath);

            return View();
        }

#8


引用 6 楼 starfd 的回复:
预先提交图片阿,分两次,图片部分用个上传控件,上传完后就能得到它在服务器上的路径了阿

我之前找到一些控制器和实体类的代码,控制器改到红线部分就不会了
ASP.NET MVC3中要怎么实现在前台上传文字和图片路径到数据库
实体类之前就弄好文字部分了,现在就添加了一行红线的部分用来存储图片的路径
ASP.NET MVC3中要怎么实现在前台上传文字和图片路径到数据库
不好意思,我是新手但又很想完成这个,上面也不知道有没有错,能帮我补完他吗?

#9


用uploadify插件吧

#10


楼主问题解决了么