Java将头像图片保存到MySQL数据库
在做头像上传的过程中通常是将图片保存到数据库中,这里简单介绍一中将图片保存到数据库的方法:
jsp代码:
<div>
<input class="avatar-input" id="avatarInput" name="avatar_file" type="file" />
<button class="btn btn-primary btn-block avatar-save" type="button" id="btn">完成</button>
</div>
//显示头像
<div>
<img id="image" src="${pageContext.request.contextPath}/Personal.do?method=Pictureshow" />
</div>
js代码:
$("#avatarInput").wrap("<form id='myupload' action='${pageContext.request.contextPath}/Personal.do?method=Pictureupload' enctype='multipart/form-data' method='post' ></form>")
var formdata;
$("#avatarInput").change(function(){
formdata=new FormData($("#myupload")[0]);
})
$("#btn").click(function(){
$.ajax({
type: 'post',
url: '${pageContext.request.contextPath}/Personal.do?method=Pictureuplo',
data: formdata,
async:false,
cache:false,
contentType:false,
processData:false,
success: function(data) {
alert(data);
}
});
});
注:为了方便获取返回值,我这里选择用ajax传值,根据需求而定,也可以直接用form表单传值。
Controller(头像插入):
@RequestMapping(params = "method=Pictureupload",headers="content-type=multipart/*" ,method=RequestMethod.POST)
public @ResponseBody int Pictureupload(@RequestParam("avatar_file")MultipartFile file,HttpServletRequest request)throws Exception{
Map map=new HashMap<>();
int YGID001 = (int)request.getSession().getAttribute("ygid001");
String name = file.getOriginalFilename();
long filesize = file.getSize();
//System.err.println(filesize);
if(filesize>200000){//判断图片大小
return -1;
}
//System.out.println(file.getBytes());
map.put("in", file.getBytes());
map.put("YGID001", YGID001);
return pcs.Pictureupload(map);//pcs为service中方法。
}
Controller(头像显示):
@RequestMapping(params = "method=Pictureshows")
public ResponseEntity<byte[]> Pictureshow(HttpServletRequest request)throws Exception{
int YGID001 = (int)request.getSession().getAttribute("ygid001");
List<PictureShow> list=pcs.Pictureshows(YGID001);//根据员工号查找头像
byte[] bytes=list.get(0).getPortrait();
HttpHeaders headers = new HttpHeaders();
try {
headers.setContentType(MediaType.IMAGE_PNG);
headers.setContentDispositionFormData("attachment", new String("头像".getBytes("GBK"),"ISO8859-1"));
} catch (Exception e) {
e.printStackTrace();
}
return new ResponseEntity<byte[]>(bytes,headers,HttpStatus.OK);
}
sql:
<!-- 头像插入 -->
insert into yg01 (SKYG018) values(#{in}) where YGID001=#{YGID001}
<!-- 头像显示 -->
select portrait from yg where YGID001=#{YGID001}
注:数据库字段类型设置为以下中的一种:TinyBlob 最大255 、 Blob 最大65K、 MediumBlob 最大16M、LongBlob 最大4G。
Java将头像图片保存到MySQL数据库的更多相关文章
- php将图片以二进制保存到mysql数据库并显示
一.存储图片的数据表结构: -- -- 表的结构 `image` -- CREATE TABLE IF NOT EXISTS `image` ( `id` int(3) NOT NULL AUTO_I ...
- Python实现将图片以二进制格式保存到MySQL数据库中,以及取出:
创建数据库表格式: CREATE TABLE photo ( photo_no int(6) unsigned NOT NULL auto_increment, image MEDIUMBLOB, P ...
- Python scrapy爬虫数据保存到MySQL数据库
除将爬取到的信息写入文件中之外,程序也可通过修改 Pipeline 文件将数据保存到数据库中.为了使用数据库来保存爬取到的信息,在 MySQL 的 python 数据库中执行如下 SQL 语句来创建 ...
- node 爬虫 --- 将爬取到的数据,保存到 mysql 数据库中
步骤一:安装必要模块 (1)cheerio模块 ,一个类似jQuery的选择器模块,分析HTML利器. (2)request模块,让http请求变的更加简单 (3)mysql模块,node连接mysq ...
- 使用官方组件下载图片,保存到MySQL数据库,保存到MongoDB数据库
需要学习的地方,使用官方组件下载图片的用法,保存item到MySQL数据库 需要提前创建好MySQL数据库,根据item.py文件中的字段信息创建相应的数据表 1.items.py文件 from sc ...
- 利用session_set_save_handler()函数将session保存到MySQL数据库中
PHP保存session默认的是采用的文件的方式来保存的,这仅仅在文件的空间开销很小的windows上是可以采用的,但是如果我们采用uinx或者是liux上的文件系统的时候,这样的文件系统的文件空间开 ...
- 关于阿里云centos 2.6下手机表情输入后无法保存到mysql数据库的问题调研及mysql版本从5.1升级到5.7的全过程纪要
近日在开发手机app的评论功能时,输入表情文字,保存后提示数据库保存失败.错误日志片段如下 caused by: java.sql.SQLException: Incorrect string val ...
- 信息技术手册可视化进度报告 基于BeautifulSoup框架的python3爬取数据并连接保存到MySQL数据库
老师给我们提供了一个word文档,里面是一份信息行业热词解释手册,要求我们把里面的文字存进数据库里面,然后在前台展示出来. 首先面临的问题是怎么把数据导进MySQL数据库,大家都有自己的方法,我采用了 ...
- python之scrapy爬取数据保存到mysql数据库
1.创建工程 scrapy startproject tencent 2.创建项目 scrapy genspider mahuateng 3.既然保存到数据库,自然要安装pymsql pip inst ...
随机推荐
- lua 数据类型
lua 数据类型 8 种数据类型 类型 说明 nil 空类型 boolean 布尔类型 number 数值型, 浮点型 string 字符串 function 函数 userdata 用户自定义结构 ...
- HR最喜欢问的问题_"你的职业规划是什么?"
很多面试官都会问,“你的职业规划是什么?”这个问题往往会难倒很多求职者.今天我跟大家分享,求职者怎样回答,才能更给自己加分 1.对目前自己要从事的这个岗位有清晰的认识,比如这个主要的工作是做什么的,大 ...
- Linux-粘滞位的使用
粘滞位(Stickybit),又称粘着位,是Unix文件系统权限的一个旗标.最常见的用法在目录上设置粘滞位, 也只能针对⽬录设置,对于⽂件⽆效.则设置了粘滞位后,只有目录内文件的所有者或者root才可 ...
- Asp.Net 网站一键部署技术(上)
用垃圾而不稳定的网速上传N次压缩包都传不上去? 手动决定哪些覆盖不覆盖? 覆盖了web.config又要手动修改连接字符串? 不注意把原有配置搞丢了? …… 貌似从此早下班和休假与你无缘了. 所以!! ...
- JavaScript动画1-速度动画
动画实际上就是在一定时间内,改变一个元素的某些属性. 这里简单实现一个JavaScript运动的框架.主要包括: 速度动画(改变left.right.width.height.opacity) 缓冲运 ...
- 基于JS的问卷调查
主要工作 因为代码不好展示,也不好截长图,可以去看我的GitHub地址:https://github.com/14glwu/MyBlog/blob/master/questionnaire.html ...
- 【lucene系列学习四】使用IKAnalyzer分词器实现敏感词和停用词过滤
Lucene自带的中文分词器SmartChineseAnalyzer不太好扩展,于是我用了IKAnalyzer来进行敏感词和停用词的过滤. 首先,下载IKAnalyzer,我下载了 然后,由于IKAn ...
- <java>枚举的简单介绍
1.枚举,enum关键字,相当于public final static. 2.举例: 首先定义了一个名为spiciness的枚举类型. public enum Spiciness { NOT, MIL ...
- 移动前端常用meta标签
移动前端常用meta标签 移动前端head常用meta标签 原文链接:http://caibaojian.com/mobile-meta.html //code from http://caibaoj ...
- OC—可变数组NSMutableArray