任务:

uos.docfile的content字段是longblob类型的,通过页面将文件存储到这个字段里。

页面代码

<div class="box"><div class="box-head"><h2>Upload a document</h2></div><form name="form1" action="uploadDocument.html" method="post" ENCTYPE="multipart/form-data"><div class="form" ><p><span class="req"><input id="remarkTxt"  name="remarkTxt" class="field size4" title="Enter the date" /></span><label>Remark: <span>(The brief introduction of the file)</span></label></p><p><span class="req"><input type="file"  name="uploadFileCtrl" class="field size4" title="Choose the file" /></span><label>Upload file: <span>(Max Size:20M)</span></label></p></div><div class="buttons"><input id="queryBtn" type="button" class="button" value="Submit" /></div></form>
</div>

1.控制器的代码

    @RequestMapping(value="/uploadDocument")public String uploadDocument(@RequestParam("remarkTxt") String remark, @RequestParam("uploadFileCtrl") MultipartFile file,HttpServletRequest request,HttpServletResponse response){try {// 从session中获得用户String userId=getUserIdFromSession(request);// 得到上传文件名String uploadFileName=file.getOriginalFilename();request.setAttribute("uploadFileName", uploadFileName);if(file.isEmpty()==false){InputStream is=file.getInputStream();service.uploadDocument(remark, is,file.getSize(),userId,uploadFileName);is.close();return "/pages/doc/result/index.jsp";}else{throw new Exception("The file you uploaded is NULL. Please check and retry.");}} catch (Exception e) {e.printStackTrace();logger.error(e);request.setAttribute("error", e.getClass());request.setAttribute("reason", e.getMessage());StackTraceElement[] arr=e.getStackTrace();request.setAttribute("stackTraceElements", arr);return "pages/error/index.jsp";}}

2.Serivce中代码,这部分只是个中转

    public int uploadDocument(String remark,InputStream fin,long filesize,String email,String uploadFileName) throws Exception{return getPosDao().uploadDocument(remark, fin,filesize,email,uploadFileName);}

3.DAO中代码,这部分是实质性代码

    public int uploadDocument(final String remark,final InputStream fin,final long filesize,final String email,String uploadFileName) throws Exception{final LobHandler lobHandler=new DefaultLobHandler();return this.getJdbcTemplate().execute("insert into uos.docfile(remark,content,email,addtime,filename) values ('"+remark+"',?,'"+email+"',NOW(),'"+uploadFileName+"' )",new AbstractLobCreatingPreparedStatementCallback(lobHandler){ protected void setValues(PreparedStatement pstmt,LobCreator lobCreator){try {lobCreator.setBlobAsBinaryStream(pstmt,1,fin,(int)filesize);} catch (SQLException e) {// TODO Auto-generated catch block
                            e.printStackTrace();}}});}

本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/xiandedanteng/p/4168882.html,如需转载请自行联系原作者

SpringMVC处理MYSQL BLOB字段的上传相关推荐

  1. mysql blob 字段_mysql BLOB字段类型用法介绍

    在mysql中,BLOB类型的字段用于存储二进制数据. MySQL中,BLOB是个类型系列,包括:TinyBlob.Blob.MediumBlob.LongBlob. 这几个类型之间的唯一区别: 存储 ...

  2. Java 操作MySql Blob 字段

    Java 操作MySql Blob 字段 import java.sql.*; import java.io.*; import javax.swing.*; import java.awt.*; i ...

  3. SpringMvc+ajax实现文件跨域上传

    最近开始学习SpringMVC框架,在学习数据绑定的时候,发现可以使用@RequestParam注解绑定请求数据,实现了文件上传.但是如果一个项目是前后端分离的,前端系统向后端服务上传文件该怎么解决了 ...

  4. mysql定时备份并上传ftp_Linux下定时任务实现mysql自动备份并上传远程ftp

    Linux下定时任务实现mysql自动备份并上传远程ftp 1.创建保存备份文件的目录:/home/mysql_data cd /home mkdir mysql_data 2.创建备份脚本文件:/h ...

  5. mysql远程定时任务_Linux下定时任务实现mysql自动备份并上传远程ftp

    Linux下定时任务实现mysql自动备份并上传远程ftp 1.创建保存备份文件的目录:/home/mysql_data cd /home mkdir mysql_data 2.创建备份脚本文件:/h ...

  6. 迟到的总结(四)--springmvc的系统学习之文件上传、ajaxjson处理

    前序:本篇主要将springmvc框架中文件的上传,json数据的配置.由于视频中的文件上传的实现运用到io流,属于比较老的方式,故本篇将重点不放在代码的实现,主要目的是过一下配置文件.改天再择取时间 ...

  7. mysql blob 字段_MySQL中TEXT与BLOB字段类型的区别

    在MySQL中有两个字段类型容易让人感觉混淆,那就是TEXT与BLOB,特别是自己写博客程序的博主不知道改为自己的博客正文字段选择TEXT还是BLOB类型. 下面给出几点区别: 一.主要差别 TEXT ...

  8. mysql管理数据 并上传至云端_怎样将MySQL数据库上传到服务器

    首先,需要将本地的数据库导出来,作为一个数据文件,以备稍后上传到服务器用,在本地登陆phpmyadmin控制面板: 登陆成功后,在左侧选择需要操作的数据库: 选择后,页面会自动刷新,然后再在右边点击[ ...

  9. java点击上传上传mysql并显示图片_java + mysql + jdbc实现图片上传

    首先在数据库中用mediumblob来保存图片的位置 Mysql中可以存储大文件数据,一般使用的BLOB对象.如图片,视频等等. BLOB是一个二进制大对象,可以容纳可变数量的数据.因为是二进制对象, ...

最新文章

  1. linux硬件 软件raid,Linux下软件RAID的实现
  2. SAP Netweaver后台作业的几种状态
  3. ajax封装 使用,AJAX封装类使用指南
  4. 又一数据库高危漏洞爆出,数据安全如何有效保障?
  5. kaggle房价预测最热解析
  6. ElasticHD Windows环境下安装(转载)
  7. 使用ENVI下载雷达图像参考DEM的方法
  8. 使用 String[] values = request.getParameterValues(key);出现的问题 ,Ajax Post 提交数组参数后台无法接收
  9. 手机TF 卡 无法读取,提示需要格式化
  10. 2021临泉一中高考成绩查询,临泉三所省级示范高中高考成绩揭晓!
  11. 大数据分析深度学习在自然语言处理NLP中的应用
  12. matlab将图片旋转的代码_我的MATLAB魔方新玩法:拼出任意图案!
  13. AIGC席卷,抖快、阅文、知乎大战网文圈
  14. 区分事件的独立性与互不相容性
  15. Vue-Element写一个简单的列表管理23/100统
  16. Linux下构建 uniapp h5 应用(非命令行创建项目)
  17. 看老程序员如何用Python的SimPy库简化复杂的编程模型的
  18. js object转json
  19. ubuntu升级后,停留在tty1界面,进不去桌面
  20. 永磁同步电机基本控制方法

热门文章

  1. sql 减法_SQL学习笔记整理(持更)
  2. python文件读取与输出_python基本文件操作(文件输入和输出)
  3. Matlab某医院用光电比色计,数理统计答案(研究生).ppt
  4. 64位操作系统,openCV4.1.1+VS2019参数配置
  5. Pyramid Scene Parsing Network
  6. 【杂谈】为什么你在有三AI看不到最新论文的解读,其实一直都有的
  7. 速卖通代运营靠谱吗?招人做对比代运营,找代运营经验分享
  8. 全球及中国商业座机电话行业投资潜力及竞争格局展望报告2021-2027年版
  9. 中国楼宇自控系统发展规划现状及未来前景预测报告2022-2028年版
  10. Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站