MVC4 上传图片怎么把图片上传到数据库

137bb 2017-11-22 02:39:08


MVC4
我想选中图片后,我想把相对路径保存在数据库。但是文件没传到服务器。那这里要怎么写它才能获取到或者说才能上传到服务器。
...全文
382 13 点赞 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
webdiyer 2017-11-24
引用 6 楼 u013363043 的回复:
[quote=引用 1 楼 ying1234 的回复:] 是不是你的页面form上没有加ENCTYPE="multipart/form-data"?
我用ajax 做的异步。而且这里不只一个图片上传[/quote] Ajaxi不支持上传文件,除非你用webuploader或pluploader之类的插件,否则Request.Files["ImgPath"]是空的,另外你判断目录是否存在怎么用System.IO.File.Exists方法??
  • 打赏
  • 举报
回复
ying1234 所说的“页面form”大概是认为你的整个页面也就只有一个 <form>。而你说的是你自己有动态地多个 <input type=file>。我估计,你自己说的“我用ajax做的异步”也就是说你连一个 <form> 都没有,那么你也就确实不可能上传文件内容,顶多上传这几个 <input> 的 value 值而已了。 一看 http request 消息内容就知道有没有 multipart/form-data 协议文件数据,开发者到这个程度就比较具有编程设计的自由了。
  • 打赏
  • 举报
回复
引用 6 楼 u013363043 的回复:
[quote=引用 1 楼 ying1234 的回复:] 是不是你的页面form上没有加ENCTYPE="multipart/form-data"?
我用ajax 做的异步。而且这里不只一个图片上传[/quote] 这里估计也不只一个 <form> 呢! 不要看表面,贴具体的调试为准,不要以猜测为准。
  • 打赏
  • 举报
回复
引用 4 楼 u013363043 的回复:
我是用table做的。然后新增一跳就加一条。 根据ID去添加数据
你的 <Form>要支持 multipart/form-data 协议!然后你就可以贴出 http 调试信息,让大家看看你的浏览器端 Request 消息体是个什么内容?! 不要纠结 asp.net mvc 编程语言。先把这里的原理给调试一下,才是真的。
  • 打赏
  • 举报
回复
stevenjin 2017-11-23
是的,楼上正确
  • 打赏
  • 举报
回复
insus 2017-11-23
  • 打赏
  • 举报
回复
正怒月神 版主 2017-11-22
引用 5 楼 u013363043 的回复:
[quote=引用 3 楼 hanjun0612 的回复:] 后台的action写错了,应该是ActionResult Test
我这里就是return Json。[/quote] 哦,我刚才是说,我自己的访问后台action写错了。应该是 action Test。 至于你的return json返回。 如果你是 前台表单提交,那就照着我给你的改成 JsonResult 并且return Json(model)就可以了。 如果是ajax提交,那么用下面这个例子 前台: [javascript] view plain copy <form id="form1"> <input type="file" id="file" name="file"/> <input type="button" value="提交" onclick="sub()" /> </form> <script> function sub() { var formData = new FormData(); formData.append("file", document.getElementById("file").files[0]); $.ajax({ url: "/Test/UploadFile", type: "POST", data: formData, contentType: false, processData: false, success: function (data) { } }); } </script> 后台: [csharp] view plain copy [HttpPost] public JsonResult UploadFile(HttpPostedFileBase file) { return Json(xxxx) }
  • 打赏
  • 举报
回复
137bb 2017-11-22
引用 1 楼 ying1234 的回复:
是不是你的页面form上没有加ENCTYPE="multipart/form-data"?
我用ajax 做的异步。而且这里不只一个图片上传
  • 打赏
  • 举报
回复
137bb 2017-11-22
引用 3 楼 hanjun0612 的回复:
后台的action写错了,应该是ActionResult Test
我这里就是return Json。
  • 打赏
  • 举报
回复
137bb 2017-11-22

我是用table做的。然后新增一跳就加一条。
根据ID去添加数据
  • 打赏
  • 举报
回复
正怒月神 版主 2017-11-22
后台的action写错了,应该是ActionResult Test
  • 打赏
  • 举报
回复
正怒月神 版主 2017-11-22
前台: [html] view plain copy @using (Html.BeginForm("Test", "Test", FormMethod.Post, new { enctype = "multipart/form-data" })) { <input name="up1" type="file" /> <input type="submit" value="Submit"/> } 后台: [html] view plain copy [ValidateInput(false)] [HttpPost] public ActionResult Create(HttpPostedFileBase up1) { if (up1!=null&&up1.FileName != "") { up1.SaveAs(imgFilePath);//文件保存,imgFilePath:文件路径+文件名 } return View(); }
  • 打赏
  • 举报
回复
ying1234 2017-11-22
是不是你的页面form上没有加ENCTYPE="multipart/form-data"?
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

5.9w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2017-11-22 02:39
社区公告
暂无公告