SpringMVC处理MYSQL BLOB字段的上传
任务:
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字段的上传相关推荐
- mysql blob 字段_mysql BLOB字段类型用法介绍
在mysql中,BLOB类型的字段用于存储二进制数据. MySQL中,BLOB是个类型系列,包括:TinyBlob.Blob.MediumBlob.LongBlob. 这几个类型之间的唯一区别: 存储 ...
- Java 操作MySql Blob 字段
Java 操作MySql Blob 字段 import java.sql.*; import java.io.*; import javax.swing.*; import java.awt.*; i ...
- SpringMvc+ajax实现文件跨域上传
最近开始学习SpringMVC框架,在学习数据绑定的时候,发现可以使用@RequestParam注解绑定请求数据,实现了文件上传.但是如果一个项目是前后端分离的,前端系统向后端服务上传文件该怎么解决了 ...
- mysql定时备份并上传ftp_Linux下定时任务实现mysql自动备份并上传远程ftp
Linux下定时任务实现mysql自动备份并上传远程ftp 1.创建保存备份文件的目录:/home/mysql_data cd /home mkdir mysql_data 2.创建备份脚本文件:/h ...
- mysql远程定时任务_Linux下定时任务实现mysql自动备份并上传远程ftp
Linux下定时任务实现mysql自动备份并上传远程ftp 1.创建保存备份文件的目录:/home/mysql_data cd /home mkdir mysql_data 2.创建备份脚本文件:/h ...
- 迟到的总结(四)--springmvc的系统学习之文件上传、ajaxjson处理
前序:本篇主要将springmvc框架中文件的上传,json数据的配置.由于视频中的文件上传的实现运用到io流,属于比较老的方式,故本篇将重点不放在代码的实现,主要目的是过一下配置文件.改天再择取时间 ...
- mysql blob 字段_MySQL中TEXT与BLOB字段类型的区别
在MySQL中有两个字段类型容易让人感觉混淆,那就是TEXT与BLOB,特别是自己写博客程序的博主不知道改为自己的博客正文字段选择TEXT还是BLOB类型. 下面给出几点区别: 一.主要差别 TEXT ...
- mysql管理数据 并上传至云端_怎样将MySQL数据库上传到服务器
首先,需要将本地的数据库导出来,作为一个数据文件,以备稍后上传到服务器用,在本地登陆phpmyadmin控制面板: 登陆成功后,在左侧选择需要操作的数据库: 选择后,页面会自动刷新,然后再在右边点击[ ...
- java点击上传上传mysql并显示图片_java + mysql + jdbc实现图片上传
首先在数据库中用mediumblob来保存图片的位置 Mysql中可以存储大文件数据,一般使用的BLOB对象.如图片,视频等等. BLOB是一个二进制大对象,可以容纳可变数量的数据.因为是二进制对象, ...
最新文章
- linux硬件 软件raid,Linux下软件RAID的实现
- SAP Netweaver后台作业的几种状态
- ajax封装 使用,AJAX封装类使用指南
- 又一数据库高危漏洞爆出,数据安全如何有效保障?
- kaggle房价预测最热解析
- ElasticHD Windows环境下安装(转载)
- 使用ENVI下载雷达图像参考DEM的方法
- 使用 String[] values = request.getParameterValues(key);出现的问题 ,Ajax Post 提交数组参数后台无法接收
- 手机TF 卡 无法读取,提示需要格式化
- 2021临泉一中高考成绩查询,临泉三所省级示范高中高考成绩揭晓!
- 大数据分析深度学习在自然语言处理NLP中的应用
- matlab将图片旋转的代码_我的MATLAB魔方新玩法:拼出任意图案!
- AIGC席卷,抖快、阅文、知乎大战网文圈
- 区分事件的独立性与互不相容性
- Vue-Element写一个简单的列表管理23/100统
- Linux下构建 uniapp h5 应用(非命令行创建项目)
- 看老程序员如何用Python的SimPy库简化复杂的编程模型的
- js object转json
- ubuntu升级后,停留在tty1界面,进不去桌面
- 永磁同步电机基本控制方法
热门文章
- sql 减法_SQL学习笔记整理(持更)
- python文件读取与输出_python基本文件操作(文件输入和输出)
- Matlab某医院用光电比色计,数理统计答案(研究生).ppt
- 64位操作系统,openCV4.1.1+VS2019参数配置
- Pyramid Scene Parsing Network
- 【杂谈】为什么你在有三AI看不到最新论文的解读,其实一直都有的
- 速卖通代运营靠谱吗?招人做对比代运营,找代运营经验分享
- 全球及中国商业座机电话行业投资潜力及竞争格局展望报告2021-2027年版
- 中国楼宇自控系统发展规划现状及未来前景预测报告2022-2028年版
- Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站