ssm框架上传图片保存到本地和数据库示例

 更新时间:2017年03月06日 14:32:22   作者:啊啊斯蒂芬  
本篇文章主要介绍了ssm框架上传图片保存到本地和数据库示例,主要使用了Spring+SpringMVC+MyBatis框架集合,有兴趣的可以了解一下。

本文介绍了ssm框架上传图片保存到本地和数据库示例,主要使用了Spring+SpringMVC+MyBatis框架,实现了ssm框架上传图片的实例,具体如下:

1、前台部分

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
  <meta charset="UTF-8"> 
  <title>Title</title> 
  <script src="resources/jquery/jquery-3.0.0.js"></script> 
</head> 
<body> 
<img id="image"src=""/> 
<br/> 
<input type="file"onchange="selectImage(this);"/> 
<br/> 
<input type="button"onclick="uploadImage();"value="提交"/> 
<script> 
  var image = ''; 
  function selectImage(file){ 
    if(!file.files || !file.files[0]){ 
      return; 
    } 
    var reader = new FileReader(); 
    reader.onload = function(evt){ 
      document.getElementById('image').src = evt.target.result; 
      image = evt.target.result; 
    } 
    reader.readAsDataURL(file.files[0]); 
  } 
  function uploadImage(){ 
    image = JSON.stringify(image) 
    $.ajax({ 
 
      type:'POST', 
 
      url: '/blog/test', 
 
      data: {base64: image 
      }, 
 
      async: false, 
 
      dataType: 'json', 
 
      success: function(data){ 
alert(data.success) 
        if(data.success){ 
 
          alert('上传成功'); 
 
        }else{ 
 
          alert('上传失败'); 
 
        } 
 
      }, 
 
      error: function(err){ 
 
        alert('网络故障'); 
 
      } 
 
    }); 
 
  } 
</script> 
<script src="jquery-1.11.1.min.js"></script> 
</body> 
</html> 

2、controller

@Inject 
  private IUserService userService; 
  @RequestMapping(value="test") 
  @ResponseBody 
  public ConsoleResult test(String base64){ 
//   自定义返回前台数据格式 
    ConsoleResult res = new ConsoleResult(); 
//   去掉base64数据头部data:image/png;base64,和尾部的” " “ 
    String[] ww= base64.split(","); 
    base64 = ww[1]; 
    String[] aa = base64.split("\""); 
    base64 = aa[0]; 
    try { 
//     将图片插入数据库 
      userService.base64test(base64); 
//     图片保存到本地 
      String path = "D:/asdfasdf.jpg"; 
      Base64File file = new Base64File(); 
      file.decoderBase64File(base64, path); 
//     成功标识 
      res.setStatus(ConsoleResult.successStatus); 
    } catch (Exception e) { 
      res.setStatus(ConsoleResult.faultStatus); 
    } 
    return res; 
  } 

3、base64

/** 
   * 将base64字符解码保存文件 
   * 
   * @param base64Code 
   * @param targetPath 
   * @throws Exception 
   */ 
 
  public static void decoderBase64File(String base64Code, String targetPath) { 
    byte[] buffer; 
    FileOutputStream out = null; 
    try { 
      buffer = new BASE64Decoder().decodeBuffer(base64Code); 
      out = new FileOutputStream(targetPath); 
      out.write(buffer); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } finally { 
      try { 
        if (out != null) { 
          out.close(); 
        } 
      } catch (IOException e) { 
        e.printStackTrace(); 
      } 
    } 
  } 

4、mapper.xml

<update id="base64Test" parameterType="String"> 
  update t_user set U_ABOUT = #{base64} where u_name = '971171444' 
 </update> 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • IDEA 格式化SQL代码技巧分享

    IDEA 格式化SQL代码技巧分享

    这篇文章主要介绍了IDEA 格式化SQL代码技巧分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Spring data jpa的使用与详解(复杂动态查询及分页,排序)

    Spring data jpa的使用与详解(复杂动态查询及分页,排序)

    这篇文章主要介绍了Spring data jpa的使用与详解(复杂动态查询及分页,排序),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Java序列化机制详解

    Java序列化机制详解

    Java 序列化机制是一种将对象转换为字节流的过程,以便在网络上传输或保存到文件中,并能在需要时将字节流还原为对象,这一机制通过实现 java.io.Serializable 接口来实现,同时涉及到一些关键概念和注意事项,需要的朋友可以参考下
    2023-12-12
  • java反射校验参数是否是基础类型步骤示例

    java反射校验参数是否是基础类型步骤示例

    这篇文章主要为大家介绍了java反射校验参数是否是基础类型步骤示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • SpringBoot MyBatis简单快速入门例子

    SpringBoot MyBatis简单快速入门例子

    MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。这篇文章主要介绍了SpringBoot MyBatis快速入门-简单例子,需要的朋友可以参考下
    2021-07-07
  • Java之网络编程案例讲解

    Java之网络编程案例讲解

    这篇文章主要介绍了Java之网络编程案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • spring boot实现profiles动态切换的示例

    spring boot实现profiles动态切换的示例

    Spring Boot支持在不同的环境下使用不同的配置文件,该技术非常有利于持续集成,在构建项目的时候只需要使用不同的构建命令就可以生成不同运行环境下war包,而不需要手动切换配置文件。
    2020-10-10
  • JAVA多种方法实现字符串反转

    JAVA多种方法实现字符串反转

    大家好,本篇文章主要讲的是JAVA多种方法实现字符串反转,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • java 使用memcached以及spring 配置memcached完整实例代码

    java 使用memcached以及spring 配置memcached完整实例代码

    本篇文章主要介绍了java 使用memcached以及spring 配置memcached完整实例代码,具有一定的参考价值,有兴趣的可以了解一下
    2017-07-07
  • IDEA项目代码上传gitlab远程仓库过程图解

    IDEA项目代码上传gitlab远程仓库过程图解

    这篇文章主要介绍了IDEA项目代码上传gitlab远程仓库过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09

最新评论