在SSM框架中如何将图片上传到数据库中

时间:2021-12-23 11:53:30

今天我们来看看SSM中如何将图片转换成二进制,最后传入到自己的数据库中,好了,废话不多说,我们开始今天的学习,我这里用的编辑器是IDEA

1、导入图片上传需要的jar依赖包

 1 <dependency>
2 <groupId>commons-io</groupId>
3 <artifactId>commons-io</artifactId>
4 <version>2.4</version>
5 </dependency>
6
7 <dependency>
8 <groupId>commons-io</groupId>
9 <artifactId>commons-io</artifactId>
10 <version>1.4</version>
11 </dependency>
12
13 <dependency>
14 <groupId>commons-fileupload</groupId>
15 <artifactId>commons-fileupload</artifactId>
16 <version>1.3.1</version>
17 </dependency>

2、通过form表单提交到Controller控制层中,但是需要注意一点,图片上传的请求方式必须是POST,否则会出现报错

然后在当前的JSP页面中的头部加入以下代码,防止出现中文乱码

<meta http-equiv="Content-Type" content="multipart/form-data;charset=utf-8" />

3、在自己的form表单后面加入下面这行代码,它的作用是将图片转换成二进制进行传递,但是它也有自身缺点,它会将你所有传递的信息都转换成二进制

enctype="multipart/form-data"

4、一系列工作完事之后,我们来开始写Controller控制层中的代码,图片上传路径切记要写自己的上传路径

@RequestMapping("这里写form表单提交的请求路径")
public String shengadd(HttpServletRequest request, Sheng sheng, MultipartFile pictureFile) throws Exception {
System.out.println("***");
//使用UUID给图片重命名,并去掉四个“-”
String name = UUID.randomUUID().toString().replaceAll("-", "");
//获取文件扩展名
String ext = FilenameUtils.getExtension(pictureFile.getOriginalFilename());
//设置图片上传路径
String url = request.getSession().getServletContext().getRealPath("/statics/img");
System.out.println(url);//输出文件名
//以绝对路径保存重命名后的图片
pictureFile.transferTo(new File(url + "/" + name + "." + ext));
//把图片储存路径保存到数据库
sheng.setImg("statics/img/" + name + "." + ext);
userService.riyongadd(sheng);
return "redirect:/redutime.html";
}

5、最后一项,在springmvc-servlet.xml文件中插入文件上传解析器

<!-- 定义文件上传解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设定默认编码 -->
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 设定文件上传的最大值5MB,5*1024*1024 -->
<property name="maxUploadSize" value="5242880"></property>
</bean>

好了,我们开始来测试代码结果:可以看到图片已经上传到自己所需要的路径里面,也保存到了数据库中

在SSM框架中如何将图片上传到数据库中

在SSM框架中如何将图片上传到数据库中的更多相关文章

  1. Aps&period;net中基于bootstrapt图片上传插件的应用

    Aps.net中基于bootstrapt图片上传插件的应用 在最近的项目中需要使用一个图片上传的功能,而且是多张图片同时上传到服务器的文件夹中,将图片路径存放在数据库中.为了外观好看使用了bootst ...

  2. C&num; winform 窗体应用程序之图片上传Oracle数据库保存字段BLOB

    C# winform 窗体应用程序之图片上传Oracle数据库保存字段BLOB 我用的数据库是Oracle,就目前来看,许多数据库现在都倾向于Oracle数据库,对ORACLE数据库基本的操作也是必须 ...

  3. ssm项目中KindEditor的图片上传插件,浏览器兼容性问题

    解决办法: 原因:使用@ResponseBody注解返回java对象,在浏览器中是Content-Type:application/json;charset=UTF-8 我们需要返回字符串(Strin ...

  4. Django中怎么做图片上传--图片展示

    1.首先是html页面的form表单的三大属性,action是提交到哪,method是提交方式,enctype只要有图片上传就要加这个属性 Django框架自带csrf_token ,所以需要在前端页 ...

  5. 从web编辑器 UEditor 中单独提取图片上传,包含多图片单图片上传以及在线涂鸦功能

    UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许*使用和修改代码.(抄的...) UEditor是非常好用的富文 ...

  6. hybird app项目实例:安卓webview中HTML5拍照图片上传

    应用的平台环境:安卓webview: 涉及的技术点: (1) <input type="file" > :在开发中,安卓webview默认点击无法调用文件选择与相机拍照 ...

  7. ckeditor如何能实现直接粘贴把图片上传到服务器中&quest;

    在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...

  8. MVC 中使用kindEditor 图片上传在IE 上进行上传出现的问题

    在IE 上使用KindEditor 进行单张图片上传的时候会出现一个下载安全警告,这样将会造成图片上传失败,出现的错误页面:

  9. 微信支付特约商户进件中base64格式图片上传

    微信图片上传接口地址:https://api.mch.weixin.qq.com/v3/merchant/media/upload 1.上传方法 1 using HttpHandlerDemo; 2 ...

随机推荐

  1. Atitit&period;&&num;160&semi;Atiposter&&num;160&semi;发帖机&&num;160&semi;新特性 poster new feature &&num;160&semi;&&num;160&semi;v7 q39

    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39 V8   重构iocutilV4,use def iocFact...jettyUtil V ...

  2. 蒟蒻修养之cf橙名计划2

    29 由于第一篇没写题意导致大部分神题题解已经完全不知道在说啥了...所以还是重开一篇保平安... [303A]题意:求三个长度为$n(n<=10^5)$的排列$a,b,c$使得$a_i+b_i ...

  3. bzoj 1012 维护一个单调数列

    Description 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作.语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度. 2. ...

  4. Qt的Script、Quick、QML的关系与总结

    背景 最近在学QML,感觉也不难,就是一直以来接触 Qt 的脚本类的东西的顺序是Script.Quick1.Declarative.Quick2.QML.那么每一个都是干什么的呢,这些东西搞的我有点混 ...

  5. Android软键盘弹出时布局问题

    最近项目需要做一个类似聊天室的模块,基于Socket实现的,这部分稍后一段时间再做总结,功能上的相关点都实现了小例子也做出来了,最后发现一个比较腻歪的问题就是软键盘弹出时总是会把标题“挤出”屏幕,(无 ...

  6. 在外部存储器上写入或读取文件&lpar;Environment类、File类的使用&rpar;

    1.Environment类 简单介绍:http://www.cnblogs.com/mengdd/p/3742623.html 详细介绍:http://www.2cto.com/kf/201408/ ...

  7. Android常用控件之Fragment仿Android4&period;0设置界面

    Fragment是Android3.0新增的概念,是碎片的意思,它和Activity很相像,用来在一个Activity中描述一些行为或部分用户界面:使用多个Fragment可以在一个单独的Activi ...

  8. 介绍一款替代SSMS的sqlserver管理工具 toad for sqlserver5&period;7

    原文:介绍一款替代SSMS的sqlserver管理工具 toad for sqlserver5.7 toad for sqlserver5.7 虽然SSMS很好很强大,不过有时候使用一些第三方工具可以 ...

  9. photo

    我们在android开发过程中 经常有做到发图片或修改上传头像的功能 即要调用系统相册 如何调用系统相册并处理返回的数据呢?因为随着android手机系统的提高 不同系统的手机对调用相册并处理相册不同 ...

  10. 列举Java中常用的包、类和接口

    常用的类: BufferedReader ,BufferedWriter FileReader    ,FileWirter String      ,Integer Date        ,Cla ...