java存储图片
2024-08-26 06:38:09
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服务器根目录下
最新文章
- 报表或BI的价值在哪?
- ubuntu16.04部署RED5流媒体服务器
- POJ 3580:SuperMemo(Splay)
- VB6的命令行参数
- 7款值得你心动的HTML5动画和游戏
- mysql远程连接出现 ERROR 2003 (HY000): Can&#39;t connect to MySQL server on IP
- jQuery选择器部分知识点总结
- House Robber &; House Robber II
- CSS3的radial-gradient(径向渐变)
- 两端对齐布局与text-align:justify
- Leetcode题解(28)
- WEB 性能测试用例设计以及总结
- javaScript笔记详解(1)
- Salesforce 导入导出数据简介
- j旧学习
- kafka命令行脚本使用
- lnmp架构搭建实例
- $Django 模板层(变量、过滤器 、标签)、自定义(模板过滤器,标签)
- C#中读取xml文件指定节点
- 實戰ESXi 5設置MPIO 打造IP-SAN負載平衡容錯
热门文章
- Cordova - CordovaError: Promise rejected with non-error: &#39;ios-deploy was not found
- CF 798B 渣渣题
- Spring Boot快速搭建Web工程
- Elasticsearch-搜索推荐
- Ubuntu 16.04LTS安装Nginx
- JAVA是是如何处理字符的。
- J01-Java IO流总结一 《异常捕获》
- sqlserver监控阻塞(死锁)具体情况(转)
- UBUNTU下MONGODB出现PHP Fatal error: Uncaught exception &#39;MongoConnectionException&#39; with message 和 Authentication failed on database &#39;admin&#39; with username
- 原生js动态添加style,添加样式