/**
* 普通附件上传
* @param uploads
* @param uploadFileNames
* @param uploadFileLabs
* @param apply_id_fname
* @param attach_id_fname
* @param attach_name_fname
* @param attach_fname
* @param attach_lab_fname
* @param tname
* @param apply_id
* @return
* @throws Exception
*/
public boolean insermultipleFileDisk(List<File> uploads,
List<String> uploadFileNames, List<String> uploadFileLabs,
String apply_id_fname, String attach_id_fname,
String attach_name_fname, String attach_fname,
String attach_lab_fname, String tname, String apply_id)
throws Exception {
StringBuffer insert_sql = new StringBuffer();
insert_sql.append("insert into ");
insert_sql.append(tname);
insert_sql.append("(");
insert_sql.append(attach_id_fname).append(",");
insert_sql.append(apply_id_fname).append(",");
insert_sql.append(attach_name_fname).append(",");
insert_sql.append(attach_fname).append(",");
insert_sql.append(attach_lab_fname);
insert_sql.append(") values ");
insert_sql.append(" (?,?,?,?,?) ");
String delte_sql = "delete " + tname + " where " + apply_id_fname
+ "=? and trim(" + attach_lab_fname + ")=?";
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
String attach_id = "";
try {
log.debug(insert_sql.toString());
conn = jt.getDataSource().getConnection();
conn.setAutoCommit(false);
for (int i = 0; i < uploads.size(); i++) {
String serverDir = ConfigAttach.getAttachDir();
if (StringUtils.endsWith(serverDir, "/")) {
serverDir = StringUtils.removeEndIgnoreCase(serverDir, "/");
}
String formater = "yyyy/MM/dd";
String serverPath = "/datafiles/"
+ DateHelper.formatDate2String(new Date(), formater)
+ "/";// 构建图片保存的目录
String fileType = uploadFileNames.get(i)
.substring(uploadFileNames.get(i).lastIndexOf('.') + 1)
.toLowerCase();
// 获取文件的名称,采用UUID的方式
String fileName = UUID.randomUUID().toString() + "." + fileType;
// 获取完成路径
String filepath = serverPath + fileName;
File descFile = new File(serverDir + filepath);
// 如果目录不存在就创建
if (!descFile.exists()) {
descFile.getParentFile().mkdirs();
}
log.debug("upload attach path:" + descFile.getAbsolutePath());
FileUtils.copyFile(uploads.get(i), descFile);
String strFileName=uploadFileNames.get(i);
ps = conn.prepareStatement(delte_sql);
ps.setString(1, apply_id);
ps.setString(2, uploadFileLabs.get(i).trim());
ps.executeUpdate();
attach_id = queryGuidFromOracle();
ps = conn.prepareStatement(insert_sql.toString());
ps.setString(1, attach_id);//附件的主键
ps.setString(2, apply_id);//附件的依据主键,即谁传的附件
ps.setString(3, strFileName);//附件的真实文件名
ps.setString(4, filepath);//文件的下载地址
ps.setString(5, uploadFileLabs.get(i).trim());
ps.executeUpdate();
}
conn.commit();
conn.setAutoCommit(true);
close(conn, ps, rs);
} catch (SQLException e) {
e.printStackTrace();
try {
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return false;
}
return true;
}
}