- 浏览: 107488 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
/**
* 创建目录
* @param directory
* @param subDirectory
*/
private void createDirectory(String directory, String subDirectory) {
String dir[];
File fl = new File(directory);
try {
if (subDirectory == "" && fl.exists() != true){
fl.mkdir();
} else if (subDirectory != "") {
dir = subDirectory.replace('\\', '/').split("/");
for (int i = 0; i < dir.length; i++) {
File subFile = new File(directory + File.separator + dir[i]);
if (subFile.exists() == false)
subFile.mkdir();
directory += File.separator + dir[i];
}
}
}
catch (Exception ex) {
log.error(ex);
}
}
/**
* 解压缩zip文件
* @param zipFileName
* @param outputDirectory
*/
public HashMap makeZipToFile(String zipFileName, String outputDirectory) {
HashMap map = new HashMap();
String newFilePath = "";
ZipFile zipFile = null;
try {
zipFile = new ZipFile(zipFileName);
java.util.Enumeration e = zipFile.getEntries();
ZipEntry zipEntry = null;
createDirectory(outputDirectory, "");
while (e.hasMoreElements()) {
zipEntry = (ZipEntry) e.nextElement();
// System.out.println("-------->>文件名:"+zipEntry.getName());
if (zipEntry.isDirectory()) {
String name = zipEntry.getName();
name = name.substring(0, name.length() - 1);
File f = new File(outputDirectory + File.separator + name);
f.mkdir();
newFilePath = outputDirectory + File.separator + name;
newFilePath = newFilePath.replace('\\','/');
// System.out.println("创建目录:" + outputDirectory
// + File.separator + name);
} else {
String fileName = zipEntry.getName();
fileName = fileName.replace('\\', '/');
if (fileName.indexOf("/") != -1) {
createDirectory(outputDirectory, fileName.substring(0,
fileName.lastIndexOf("/")));
fileName = fileName.substring(
fileName.lastIndexOf("/") + 1, fileName
.length());
}
File f = new File(outputDirectory + File.separator
+ zipEntry.getName());
f.createNewFile();
InputStream in = zipFile.getInputStream(zipEntry);
FileOutputStream out = new FileOutputStream(f);
byte[] by = new byte[1024];
int c;
while ((c = in.read(by)) != -1) {
out.write(by, 0, c);
}
out.close();
in.close();
String saveFilePath = outputDirectory + File.separator
+ zipEntry.getName();
//图片路径
saveFilePath = saveFilePath.replace('\\', '/');
//图片名称
String saveFileName = zipEntry.getName().substring(zipEntry.getName().lastIndexOf("/")+1,zipEntry.getName().indexOf("."));
//定义图片大小
toJPG(saveFilePath,null,100);
//将数据库查询字段和图片路径放在map中
map.put(saveFileName, saveFilePath);
// System.out.println("-------->>创建文件路径:"+saveFilePath);
// System.out.println("-------->>创建文件名:"+saveFileName);
}
}
//如果不关闭,无法删除zip文件
zipFile.close();
} catch (Exception ex) {
log.error(ex);
}
boolean flag = true;
try {
//保存图片
savePhotoBatch(map);
File oldFile = new File(zipFileName);
//删除zip文件和解压后的文件
oldFile.delete();
deleteDirectory(newFilePath);
} catch (Exception e) {
flag =false;
log.error(e);
}
HashMap flagMap = new HashMap();
flagMap.put("flag", String.valueOf(flag));
return flagMap;
}
public static void toJPG(String source, String dest, int quality) throws JimiException {
if (dest == null || dest.trim().equals(""))
dest = source;
if (!dest.toLowerCase().trim().endsWith("jpg")) {
dest += ".jpg";
System.out.println("Overriding to JPG, output file: " + dest);
}
if (quality < 0 || quality > 100 || (quality + "") == null
|| (quality + "").equals("")) {
System.out.println("quality must between ’0’ and ’100’");
System.out.println("set to DEFAULT value:’75’");
quality = 100;
}
try {
JPGOptions options = new JPGOptions();
options.setQuality(quality);
ImageProducer image = Jimi.getImageProducer(source);
JimiWriter writer = Jimi.createJimiWriter(dest);
writer.setSource(image);
// 加入属性设置,非必要
// /*
writer.setOptions(options);
// */
writer.putImage(dest);
OutputStream os = new ByteArrayOutputStream();
writer.putImage(os);
} catch (JimiException je) {
je.printStackTrace();
throw je;
}
}
/**
* 批量保存图片成blob格式
* @param map
* @throws Exception
*/
public void savePhotoBatch(HashMap map) throws Exception{
Connection conn = null;
Statement stmt = null;
OraclePreparedStatement pstmt = null;
Transaction tx = null;
OracleResultSet rs = null;
try{
Session session = HibernateSessionFactory.getSession();
conn = session.connection();
stmt = conn.createStatement();
tx = session.beginTransaction();
byte[] userPhotoBytes = new byte[0];
for(Iterator it = map.keySet().iterator();it.hasNext();){
String userName = (String)it.next();
String userPhotoPath = (String)map.get(userName);
if (userPhotoPath != null && !userPhotoPath.equals("")) {
File file = new File(userPhotoPath);
FileInputStream fileInputStream = new FileInputStream(file);
userPhotoBytes = new byte[fileInputStream.available()];
rs = (OracleResultSet) stmt
.executeQuery("SELECT picture FROM human_user WHERE username = '"
+ userName + "' FOR UPDATE");
if (rs.next()) {
pstmt = (OraclePreparedStatement) conn
.prepareStatement("UPDATE human_user SET picture = ? WHERE username = '"
+ userName + "'");
pstmt.setBinaryStream(1, fileInputStream, (int) file.length());
pstmt.executeUpdate();
}
fileInputStream.close();
}
}
session.flush();
tx.commit();
}catch (Exception ex) {
ex.printStackTrace();
tx.rollback();
throw new Exception(ex);
} finally {
try {
if(rs!=null){
rs.close();
}
pstmt.close();
stmt.close();
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
HibernateSessionFactory.closeSession();
}
}
/**
* 删除文件
* @param fileName
* @return
*/
public static boolean deleteFile(String fileName){
File file = new File(fileName);
if(file.isFile() && file.exists()){
file.delete();
return true;
}else{
return false;
}
}
/**
* 删除目录(文件夹)以及目录下的文件
* @param dir 被删除目录的文件路径
* @return 目录删除成功返回true,否则返回false
*/
public static boolean deleteDirectory(String dir){
File dirFile = new File(dir);
//如果dir对应的文件不存在,或者不是一个目录,则退出
if(!dirFile.exists() || !dirFile.isDirectory()){
return false;
}
boolean flag = true;
//删除文件夹下的所有文件(包括子目录)
File[] files = dirFile.listFiles();
for(int i=0;i<files.length;i++){
//删除子文件
if(files[i].isFile()){
flag = deleteFile(files[i].getAbsolutePath());
if(!flag){
break;
}
}
//删除子目录
else{
flag = deleteDirectory(files[i].getAbsolutePath());
if(!flag){
break;
}
}
}
if(!flag){
return false;
}
//删除当前目录
if(dirFile.delete()){
return true;
}else{
return false;
}
}
发表评论
-
解决excel文字读取错误 可能某些数字格式已丢失
2018-12-29 09:11 599ServletOutputStream ... -
struts上传下载多个文件
2015-04-30 11:24 479实例: 第一步导入包: commons-fileupload- ... -
jdcob--Could not initialize class com.jacob.com.ComThread
2015-02-27 09:00 18871--dll 文件 放在tomcat/bin 下面 ... -
ntko打印公章
2014-12-02 09:04 541//TANGER_OCX_OBJ.ActiveDocument ... -
hibernate 映射文件生成数据库表脚本
2011-03-28 16:20 846import org.hibernate.cfg.Config ... -
java换肤改变页面肤色
2011-03-02 14:05 973import java.io.IOException;impo ... -
java 过滤未登录的用户
2011-03-02 14:03 1084<filter> <filte ... -
java 在线用户统计
2011-03-02 13:47 1612web.xml <listener> ... -
java 过滤乱码
2011-03-02 13:44 924web.xml <filter> <f ... -
jacob资料
2011-02-13 23:48 1844JACOB是一个JAVA到微软的COM接口的桥梁。使用JACO ... -
hibernate 查询乱码
2010-10-06 15:12 732在使用HQL进行查询时,如果查询语句中存在中文字符,则会有乱码 ... -
java 多线程代码
2010-09-30 12:44 1471package com.jacob.activeX; imp ... -
过滤未登录的用户
2010-09-15 10:59 867package com.filter; import jav ... -
jacob操作word 解决换页问题
2010-09-13 08:17 3722package audit.pub.word; imp ... -
jacob操作word增加表格 行列
2010-08-10 09:52 2925import com.jacob.activeX.Activ ... -
jsp导出word 带图片
2010-04-12 17:28 33611.将word另存为html格式,然后将html格式的文件另存 ... -
读取blob格式图片上传到服务器目录
2010-04-12 17:21 1966//得到blob格式图片 String fileUrl = ... -
org.apache.tools包 解压缩zip 解决中文乱码 ant 版本冲突
2010-03-30 12:50 3009private void createDirectory(St ... -
java 获取文件大小
2010-03-29 14:32 15781import java.io.*; public class ... -
xml的读取分析 key value
2010-03-23 15:20 1566package com.basedata.xml; impo ...
相关推荐
只需要安装oracle client在本地,然后配置好tns,输入连接名,用户名,密码,数据表的名称,文件名数据列名以及blob数据列名,就可以批量导出ORACLE数据库BLOB字段生成图片
主要介绍了ORACLE批量导入图片到BLOB字段代码示例,此代码示例是文章作者的项目源码,具有一定参考价值,需要的朋友可以了解下。
语言Java,数据库mysql 批量获取Blob图片下载到本地,同时设置本地保存位置
此为exe可执行文件,运行之前需要安装oracle10g客户端,打开程序后需要先配置数据库用户名、密码以及数据库别名。然后再填入正确的查询语句,查询出相应的结果后导出到指定的文件夹即可。
20180828开发,提供了三... WEB方式未实现,后期自行研究(可通过JS将前台上传的图片处理成Base64编码格式的字符串, 然后将Base64字符串传参到Controller后进行解码处理后再存储到BLOB字段。 依赖Jar包: ojdbc6.jar
批量导出oracle bolb图片到本地文件
只需要安装oracle client在本地,然后配置好tns,输入连接名,用户名,密码,数据表的名称,文件名数据列名以及blob数据列名,就可以批量导出ORACLE数据库BLOB字段生成图片
jsp操作mysql数据库的blob字段,实现: 1、将磁盘文件存入mysql数据库; 2、将mysql数据库中存入的文件,读出来,输出给浏览器。
spring+mybatis下BLOB字段的图片存取代码,仅整理了Controller层的代码,service和dao的代码很简单,所以没有整理
图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片),完整的demo例子,可运行。
MySQL BLOB类型 MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。 插入BLOB类型的数据必须使用PreparedStatement,因为BLOB类型的数据无法使用字符串拼接写的。 MySQL的...
上传图片到数据库并使用JDBC操作BLOB 在本篇文章中,我们将讨论如何上传图片到数据库,并使用JDBC操作BLOB(Binary Large OBject)。BLOB是一种二进制大对象,是数据库中的一种数据类型,用于存储大规模的二进制...
欢迎访问百度贴吧 : 世态炎凉一依然 吧. 本项目事例来自 世态炎凉一依然 吧. 内容为商品展示,数据库采用mysql,商品图 片存储在数据库中
使用PL/SQL脚本将Oracle的Blob字段中存储的图片批量导出到文件夹,可在文件夹中直接查看。
该程序是用pb9.0做的,使用的是sql2000。未附数据库,可自建一个新数据库及连接字段是id:char(10),pict:image(16)
mysql写入或读取一段数据块时,数据类型为blob型,本代码详细介绍在mysqll中如何读写blob格式数据
实现图片直接以blob的形式直接存入数据库,页面简洁好看,功能可以兑现
主要介绍了用C#将图片保存至Oracle BLOB字段中的方法, 依靠ImageViewer库进行操作,需要的朋友可以参考下
简单写的一个小工具,把图片存入oracle中,按clob和blob两种方式存储,并读取图片