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

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


MVC4
我想选中图片后,我想把相对路径保存在数据库。但是文件没传到服务器。那这里要怎么写它才能获取到或者说才能上传到服务器。
...全文
462 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
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"?

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧