java存储图片
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Calendar;
import java.util.Random; import javax.servlet.http.HttpServletRequest; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import sun.misc.BASE64Decoder; public class ImageUntil {
public boolean saveBase64File(String username,String imgStr) {
// 对字节数组字符串进行Base64解码并生成图片
if (imgStr == null) // 图像数据为空
return false;
imgStr = imgStr.replaceAll("data:image/jpeg;base64,", "");
BASE64Decoder decoder = new BASE64Decoder();
try {
// Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成jpeg图片
String fileName=username + ".jpg";
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
File f2=new File(System.getProperty("catalina.home")+ File.separator+"webapps"+File.separator+"uploadFile");
boolean exists2 = f2.exists();
if(!exists2){
f2.mkdirs();
}
//String realPath=request.getSession().getServletContext().getRealPath("uploadFile/touxiang")+ File.separator;
String tomcaturl=System.getProperty("catalina.home")+ File.separator+"webapps"+File.separator+"uploadFile"+File.separator+"touxiang"+ File.separator;
File f1=new File(System.getProperty("catalina.home")+ File.separator+"webapps"+File.separator+"uploadFile"+File.separator+"touxiang");
boolean exists = f1.exists();
if(!exists){
f1.mkdirs();
}
File file = new File(tomcaturl+fileName);
OutputStream out = new FileOutputStream(file);
out.write(b);
out.flush();
out.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
对字节数组字符串进行Base64解码并生成图片,imgData是从客户端发过来的,图片经过base64位处理的字符串,并将图片存在tomcat服务器根目录下
java存储图片的更多相关文章
- vue图片上传及java存储图片(亲测可用)
1.前言 在使用elementui的upload组件时,我一直无法做到上传的图片和其他数据一起提交.单纯的上传文件,java的存储图片的方式也有局限性. 我知道的后端保存图片有两种方式:一种是直接存储 ...
- Oracle中存储图片的类型为BLOB类型,Java中如何将其读取并转为字符串?
一,读取图片转为String类型: 需要使用Sun公司提供的Base64工具 String str = ((Map) list1.get(0)).get("EINVOICEFILE" ...
- android 存储图片到data目录和读取data目录下的图片
, fos); } ); Bitmap.CompressFormat localCompressFormat = Bitmap.CompressFormat.PNG; bitmap.compress( ...
- 使用jdbc存储图片和大文本
package cn.itcast.i_batch; import java.sql.Connection; import java.sql.PreparedStatement; import jav ...
- java多图片上传--前端实现预览--图片压缩 、图片缩放,区域裁剪,水印,旋转,保持比例。
java多图片上传--前端实现预览 前端代码: https://pan.baidu.com/s/1cqKbmjBSXOhFX4HR1XGkyQ 解压后: java后台: <!--文件上传--&g ...
- Redis 存储图片 [base64/url/path]vs[object]
一.base64图片编解码 基本流程:从网络获取下载一张图片.然后base64编码,再base64解码,存到本地E盘根文件夹下. import java.awt.image.BufferedImage ...
- 【hibernate】存储图片
[hibernate]存储图片 转载: package cn.ycx.study.hibernate.entity; import javax.persistence.Entity; import j ...
- Java中图片压缩处理
原文http://cuisuqiang.iteye.com/blog/2045855 整理文档,搜刮出一个Java做图片压缩的代码,稍微整理精简一下做下分享. 首先,要压缩的图片格式不能说动态图片,你 ...
- java获取图片原始尺寸
java获取图片原始尺寸 URL url = null; InputStream is = null; BufferedImage img = null; try { url = new URL(pi ...
随机推荐
- 201621123012 《java程序设计》第5周学习总结
作业05-继承.多态.抽象类与接口 标签(空格分隔): java 1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 答:接口,比较器,has-a,Comparator. 1.2 ...
- 【文文殿下】浅析scanf源码
本文仅做理性上的愉悦,无实际用途. scanf实际的调用 我们直接使用的scanf其实是这样写的 int __cdecl scanf ( const char *format, ... ) { va_ ...
- Android studio 安装的安装若干问题
1.在国内如何更新android sdk? 由于众所周知的某些原因,我们无法直接连接android sdk的更新服务更新sdk,所以可以通过国内的ftp站点把常用的sdk组件如android plat ...
- JS - ECMAScript2015(ES6)新特性
友情提示:本文仅mark几个常用的新特性,详细请参见:ES6入门 - ryf: 碎片 var VS let VS const var:声明全局变量, let:声明块级变量,即局部变量 const:声明 ...
- iOS--MJRefresh的使用 上拉刷新和下拉加载
1.一般使用MJRefresh 来实现上拉刷新和下拉加载功能 2.MJRefresh 下载地址:https://github.com/CoderMJLee/MJRefresh 3. MJRefresh ...
- rabbitmq系列二 之工作队列
---恢复内容开始--- 1.工作队列的简介 在上一篇中,我们已经写了一个从已知队列中发送和获取消息的程序,在这里,我们创建一个工作队列(work queue), 会发送一些耗时的任务给多个工作者.模 ...
- jQuery过滤选择器:first和:first-child的区别,CSS伪类:first-child
最近项目中遇到需求:只在第一列不能删除,不显示小叉号:点击可添加一列,后面的列右上角显示小叉号,可以点击删除. 我是使用以下方法解决这个小需求 :CSS伪类选择器:first-child设置所有小叉号 ...
- js03
我们接着来学习js的一些基础知识点. 1.document: document是window对象的一个属性.window对象表示浏览器中打开的窗口.如果文档包含框架(frame或者iframe),浏览 ...
- Redis查询&JDBC查询&Hibernate查询方式的效率比较...
比较三种查询方式查询效率对比...我是用的JavaWeb的方式通过通过JSP页面查询的填写查询的参数...给予反馈.... 整个demo的下载地址:http://files.cnblogs.com/f ...
- mysql清空表命令:delete和truncate区别
mysql清空表可以用delete和truncate两个命令来完成: 1. delete ① 语法:delete from table_name: ② 示例:DELETE FROM `order`; ...