首页 > 开发 > Java > 正文

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

2024-07-13 10:05:13
字体:
来源:转载
供稿:网友

本文介绍了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> 

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


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表