package com.bgd.debt.zqgl.attachload.action;
import com.bgd.debt.common.util.DebtUtils;
import com.bgd.debt.zqgl.attachload.service.AttachLoadService;
import com.bgd.platform.util.action.ExportAction;
import com.bgd.platform.util.common.DsyEscapeTool;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.struts2.ServletActionContext;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
//todo -------------------------重构--------------------------
public class AttachLoadAction extends ExportAction {
private static final long serialVersionUID = 1L;
private AttachLoadService attachLoadService;
private File upload; // 上传的文件
private String uploadFileName; // 文件名称
private String uploadContentType; // 文件类型
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public AttachLoadService getAttachLoadService() {
return attachLoadService;
}
public void setAttachLoadService(AttachLoadService attachLoadService) {
this.attachLoadService = attachLoadService;
}
/**
* 根据批次获取该批次下的申报数据列表
*/
public void getBillsByPc() {
HttpServletRequest req = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
response.setHeader("ContentType", "text/html");
response.setCharacterEncoding("utf-8");
// 分页
int start = Integer.parseInt(DebtUtils.escapeParamValue(req, "start", 0, "number"));
int limit = Integer.parseInt(DebtUtils.escapeParamValue(req, "limit", 0, "number"));
// 接收req传递过来的参数
Map<String, Object> param = DebtUtils.getEscapeParameterMap(req);
JSONObject result = new JSONObject();
try {
// 查询得到结果
JSONObject res = attachLoadService.getBillsByPc(start, limit, param);
result.put("list", JSONArray.fromObject((List) res.get("list")));
result.put("totalcount", (Integer) res.get("count"));
if (JSONArray.fromObject((List) res.get("list")) != null) {
result.put("success", true);
} else {
result.put("success", false);
result.put("message", "查询结果为空");
}
} catch (Exception e) {
result.put("message", "获取数据异常!"+DebtUtils.getExceptionMessage(e));
result.put("success", false);
e.printStackTrace();
} finally {
try {
PrintWriter out = response.getWriter();
out.write(result.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 构建项目上传的附件结构
*/
public void getXmfj() {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
// 接收req传递过来的参数
Map<String, Object> param = DebtUtils.getEscapeParameterMap(request);
String[] ids = DebtUtils.escapeParamValues(request,"ids",-1,"string");
param.put("ids", ids);
JSONObject result = new JSONObject();
String realPath = ServletActionContext.getServletContext().getRealPath("/").replace("/", "//");
try {
Map r = attachLoadService.getXmfj(param,realPath);
if(r==null) {
result.put("success", false);
result.put("message", "代码返回Null指针,数据异常!");
}else {
result.put("success", true);
//获取压缩后的文件
File file = (File) r.get("file");
result.put("file_name", file.getName());
//计算文件大小
DecimalFormat df = new DecimalFormat("#.00");
long bytes = calcFileSize(file);
String mb = df.format(bytes/(1014.0*1024.0));
//文件大于200M,提示自动下载还是上服务器拷贝,不删除压缩包
if(bytes>(200*1024*1024)) {
result.put("message", file.getName()+",未压缩文件大小:"+mb+"MB,超过200MB,可能下载较慢,路径:"+file.getAbsolutePath()+",是否连接服务器进行拷贝?");
}else {
result.put("message", "是否自动下载?否将拷贝到服务器");
}
}
} catch (Exception e) {
result.put("success", false);
result.put("message", DebtUtils.getExceptionMessage(e));
}finally {
PrintWriter out;
try {
out = response.getWriter();
out.write(result.toString());
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 计算文件夹大小
* @param file
* @return
*/
private long calcFileSize(File file) {
long size = 0;
List<File> files = new ArrayList<File>();
getFiles(file,files);
for (File f : files) {
size+=f.length();
}
return size;
}
/**
* 获取文件数组
* @param file
*/
private void getFiles(File file,List<File> fileList) {
if (file.exists()) {
if (file.isFile()) {
fileList.add(file);
} else {
File[] files = file.listFiles();
for (File f : files) {
getFiles(f,fileList);
}
}
}
}
/**
* 下载文件并删除服务器上文件
*/
public void downloadXmFileZip() {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
// 接收req传递过来的参数
Map<String, Object> param = DebtUtils.getEscapeParameterMap(request);
String realPath = ServletActionContext.getServletContext().getRealPath("/").replace("/", "//");
//下载方式 1:浏览器下载 2:服务器拷贝
String xzfs = (String) param.get("xzfs");
ZipOutputStream os = null;
JSONObject result = new JSONObject();
File file = null;
try {
String file_name = java.net.URLDecoder.decode((String)param.get("file_name"), "utf-8");
String filePath = realPath+file_name;
//未压缩的文件
file = new File(filePath);
if(file.exists()) {
//压缩以及下载文件
if(xzfs!=null&&"1".equals(xzfs)) {//浏览器下载
//将文件下载到本地
response.reset();
response.setContentType("APPLICATION/OCTET-STREAM");
//文件名
String filename = file.getName()+".zip";
response.addHeader("Content-Disposition", DsyEscapeTool.escapeContentDisposition(filename, 200, "string"));
os = new ZipOutputStream(response.getOutputStream());
}else {
//将文件压缩上传到服务器
File zipFile = new File(filePath+".zip");
if(!zipFile.exists()) {
zipFile.createNewFile();
}
os = new ZipOutputStream(new FileOutputStream(zipFile));
}
//设置输出流编码,window默认为gbk
os.setEncoding("gbk");
long startTime = System.currentTimeMillis();
//计算文件压缩时间
zip(file.listFiles(),file.getName(),os);
long endTime = System.currentTimeMillis();
result.put("success", true);
result.put("message", "文件压缩成功,耗时:"+(endTime-startTime)+"毫秒!请拷贝后删除!");
}
}catch(Exception e) {
result.put("success", false);
result.put("message", "文件压缩上传失败!"+DebtUtils.getExceptionMessage(e));
}finally {
try {
if(os!=null) {
os.close();
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if(delFile(file)) {
System.out.println("文件“"+file.getName()+"”删除成功!");
}else {
System.out.println("文件“"+file.getName()+"”删除失败!");
}
}
//若是上传到服务器,则执行下载代码
if(!(xzfs!=null&&"1".equals(xzfs))) {
try {
PrintWriter out = response.getWriter();
out.write(result.toString());
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 压缩文件的方法
* @param files 文件对象数组
* @param baseFolder 文件夹基目录
* @param zos zip文件输出流
* @throws Exception
*/
private static void zip(File[] files, String baseFolder, ZipOutputStream zos) throws Exception {
// 输入
FileInputStream fis = null;
// 条目
ZipEntry entry = null;
// 数目
int count = 0;
for (File file : files) {
if (file.isDirectory()) {
// 递归
zip(file.listFiles(), baseFolder + File.separator + file.getName(), zos);
continue;
}
entry = new ZipEntry(baseFolder + File.separator + file.getName());
// 加入
zos.putNextEntry(entry);
fis = new FileInputStream(file);
// 读取
byte[] buffer = new byte[1024];
while ((count = fis.read(buffer, 0, buffer.length)) != -1) {
// 写入
zos.write(buffer, 0, count);
zos.flush();
}
zos.closeEntry(); // 释放资源
fis.close();
}
}
/**
* 递归删除文件及文件夹
* @param file
*/
private boolean delFile(File file) {
if (!file.exists()) {
return false;
}
if (file.isFile()) {
return file.delete();
} else {
File[] files = file.listFiles();
for (File f : files) {
delFile(f);
}
return file.delete();
}
}
}
package com.bgd.debt.zqgl.attachload.service;
import com.bgd.debt.common.service.DebtCommonService;
import com.bgd.debt.common.util.DebtException;
import com.bgd.debt.common.util.DebtUtils;
import com.bgd.platform.upload.action.DownloadFileAction;
import com.bgd.platform.util.dao.BgdDataSource;
import com.bgd.platform.workflow.task.service.DoWorkFlowService;
import dm.jdbc.util.StringUtil;
import net.sf.json.JSONObject;
import java.io.;
import java.text.SimpleDateFormat;
import java.util.;
//import com.bgd.debt.common.util.VeriCodeUtil;
public class AttachLoadService {
private BgdDataSource bgdDataSource;
private DoWorkFlowService doWorkFlowService;
private DebtCommonService commonService;
private DownloadFileAction downFileAction;
// private GkClientServiceImpl gkClientServiceImpl;
// public GkClientServiceImpl getGkClientServiceImpl() {
// return gkClientServiceImpl;
// }
//
// public void setGkClientServiceImpl(GkClientServiceImpl gkClientServiceImpl) {
// this.gkClientServiceImpl = gkClientServiceImpl;
// }
public DebtCommonService getCommonService() {
return commonService;
}
public void setCommonService(DebtCommonService commonService) {
this.commonService = commonService;
}
public DoWorkFlowService getDoWorkFlowService() {
return doWorkFlowService;
}
public void setDoWorkFlowService(DoWorkFlowService doWorkFlowService) {
this.doWorkFlowService = doWorkFlowService;
}
public BgdDataSource getBgdDataSource() {
return bgdDataSource;
}
public void setBgdDataSource(BgdDataSource bgdDataSource) {
this.bgdDataSource = bgdDataSource;
}
public DownloadFileAction getDownFileAction() {
return downFileAction;
}
public void setDownFileAction(DownloadFileAction downFileAction) {
this.downFileAction = downFileAction;
}
/* public BgdDataSource getbgdDataSource() {
return bgdDataSource;
}
public void setbgdDataSource(BgdDataSource bgdDataSource) {
this.bgdDataSource = bgdDataSource;
}
/
/*
* 根据批次获取该批次下的申报数据列表 分页显示
*
* @param start 起始页
* @param limit 截止页
* @param param 参数
* @return
*/
public JSONObject getBillsByPc(int start, int limit, Map<String, Object> param) {
String downloadflag = (String) param.get(“downloadflag”);
String mhcx = (String) param.get(“mhcx”);
String AD_CODE_CHOSE = (String) param.get(“AD_CODE_CHOSE”);
StringBuffer sb = new StringBuffer();
StringBuffer mainSql = new StringBuffer();
List paramList = new ArrayList();
if (“0”.equals(downloadflag)) {
mainSql.append(" SELECT ZQXX.ZQ_ID," +
" ZQXX.ZQ_NAME," +
" AD.CODE AS AD_CODE," +
" AD.NAME AS AD_NAME," +
" AG.NAME AS AG_NAME," +
" INFO.XM_NAME," +
" INFO.XM_ID," +
" INFO.XM_CODE," +
" XMLX.NAME AS XMLX_NAME" +
" FROM (SELECT RELATION.XM_ID" +
" FROM DEBT_V_ZQXM_ZCXX_RELATION RELATION" +
" LEFT JOIN DEBT_T_ZQGL_ZCXX ZCXX" +
" ON RELATION.ZQ_ID = ZCXX.ZQ_ID" +
" AND RELATION.XM_ID = ZCXX.XM_ID" +
" WHERE 1 = 1" +
" AND RELATION.ZC_TYPE = ‘0’" +
" GROUP BY RELATION.XM_ID) CXQXM" +
" LEFT JOIN DEBT_T_ZQGL_ZQXM ZQXM" +
" ON CXQXM.XM_ID = ZQXM.XM_ID" +
" LEFT JOIN DEBT_T_ZQGL_ZQXX ZQXX" +
" ON ZQXM.ZQ_ID = ZQXX.ZQ_ID" +
" LEFT JOIN DEBT_T_PROJECT_INFO INFO" +
" ON CXQXM.XM_ID = INFO.XM_ID" +
" LEFT JOIN DSY_V_ELE_ZWXMLX XMLX" +
" ON INFO.XMLX_ID = XMLX.GUID" +
" LEFT JOIN DSY_V_ELE_AD AD" +
" ON INFO.AD_CODE = AD.CODE" +
" LEFT JOIN DSY_V_ELE_AG AG" +
" ON INFO.AG_ID = AG.GUID");
}else if (“1”.equals(downloadflag)) {
mainSql.append(" SELECT ZQZC.ZC_NO," +
" ZQZC.AD_CODE," +
" ZQZC.AD_NAME," +
" ZQZC.AG_NAME," +
" ZQZC.ZCD_ID," +
" ZQXX.ZQ_ID," +
" ZQXX.ZQ_NAME," +
" ZQZC.PAY_DATE," +
" ZQZC.PAY_AMT," +
" ZQZC.ZCD_REMARK" +
" FROM DEBT_V_ZQGL_ZCXX ZQZC" +
" LEFT JOIN DEBT_T_ZQGL_ZQXX ZQXX" +
" ON ZQZC.ZQ_ID = ZQXX.ZQ_ID" );
}else {
mainSql.append(" SELECT SJZC.SJZC_NO," +
" SJZC.AG_NAME," +
" SJZC.AD_CODE," +
" SJZC.SJZC_ID," +
" ZQ.ZQ_ID," +
" ZQ.ZQ_NAME," +
" INFO.XM_ID," +
" INFO.XM_NAME," +
" SJZC.FOUND_TYPE_CODE AS LY_TYPE," +
" SJZC.SJZC_DATE," +
" SJZC.SJZC_AMT," +
" SJZC.VOUCHER_ABS," +
" SJZC.REMARK" +
" FROM DEBT_T_ZQGL_ZCXX_SJZC SJZC" +
" LEFT JOIN DEBT_T_PROJECT_INFO INFO" +
" ON SJZC.XM_ID = INFO.XM_ID" +
" LEFT JOIN DEBT_T_ZQGL_ZQXX ZQ" +
" ON SJZC.ZQ_ID = ZQ.ZQ_ID");
}
sb.append(" WHERE 1=1");
if (!(mhcx == null || “”.equals(mhcx))) {
sb.append(" AND INFO.XM_NAME LIKE ?“);
paramList.add(”%" + mhcx + “%”);
}
if (!(AD_CODE_CHOSE == null || “”.equals(AD_CODE_CHOSE))) {
sb.append(" AND INFO.AD_CODE LIKE ?||‘%’ ");
paramList.add(AD_CODE_CHOSE);
}
mainSql.append(sb);
Integer countSum = bgdDataSource.getCountBySql(mainSql.toString(), paramList.toArray());
List list = bgdDataSource.findBySqlLimit(mainSql.toString(), paramList, start, limit);
JSONObject rs = new JSONObject();
if (list.size() > 0) {
rs.put(“map”, list.get(0));
}
rs.put(“list”, list);
rs.put(“count”, countSum);
return rs;
}
/**
* 下载项目附件
*
* @param param 要下载附件的项目数组
* 该功能所要下载的附件是上传到项目上的,所以BUSI_ID = XM_ID
* @param realPath 服务器路径
* @return
* @throws Exception
*/
public Map getXmfj(Map<String, Object> param, String realPath) throws Exception {
Map<String, Object> result = new HashMap<String, Object>();
String downloadflag = (String) param.get("downloadflag");
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
String baseForderName = "";
if ("0".equals(downloadflag)) {
baseForderName = "项目附件下载" + format.format(date);
}else if ("1".equals(downloadflag)) {
baseForderName = "支出附件下载" + format.format(date);
} else {
baseForderName = "实物工作量附件下载" + format.format(date);
}
StringBuilder sql = new StringBuilder();
//循环遍历对项目操作
if ("0".equals(downloadflag)) {
sql.append(" SELECT AD.CODE AS AD_CODE," +
" AD.NAME AS AD_NAME," +
" XM.XM_ID," +
" XM.XM_NAME," +
" INFO.FILE_NAME," +
" INFO.FILE_ID," +
" INFO.FILE_PATH," +
" INFO.STORE_MODE" +
" FROM DSY_V_ELE_AD AD" +
" LEFT JOIN DEBT_T_PROJECT_INFO XM " +
" ON XM.AD_CODE = AD.CODE" +
" LEFT JOIN DEBT_T_FILE_INFO INFO" +
" ON XM.XM_ID = INFO.BUSI_ID" +
" WHERE INFO.BUSI_ID IS NOT NULL" +
" AND XM.XM_ID = ?");
} else if ("1".equals(downloadflag)) {
sql.append(" SELECT AD.CODE AS AD_CODE," +
" AD.NAME AS AD_NAME," +
" XM.XM_ID," +
" XM.XM_NAME," +
" INFO.FILE_NAME," +
" INFO.FILE_ID," +
" INFO.FILE_PATH," +
" INFO.STORE_MODE" +
" FROM DSY_V_ELE_AD AD" +
" LEFT JOIN DEBT_T_ZQGL_ZCXX ZCXX " +
" ON ZCXX.AD_CODE = AD.CODE" +
" LEFT JOIN DEBT_T_PROJECT_INFO XM" +
" ON ZCXX.XM_ID = XM.XM_ID" +
" LEFT JOIN DEBT_T_FILE_INFO INFO" +
" ON ZCXX.ZCD_ID = INFO.BUSI_ID" +
" WHERE INFO.BUSI_ID IS NOT NULL" +
" AND ZCXX.ZCD_ID = ?");
} else {
sql.append("SELECT AD.CODE AS AD_CODE," +
" AD.NAME AS AD_NAME," +
" XM.XM_ID," +
" XM.XM_NAME," +
" INFO.FILE_NAME," +
" INFO.FILE_ID," +
" INFO.FILE_PATH," +
" INFO.STORE_MODE" +
" FROM DSY_V_ELE_AD AD" +
" LEFT JOIN DEBT_T_ZQGL_ZCXX_SJZC SJZC " +
" ON SJZC.AD_CODE = AD.CODE" +
" LEFT JOIN DEBT_T_PROJECT_INFO XM" +
" ON SJZC.XM_ID = XM.XM_ID" +
" LEFT JOIN DEBT_T_FILE_INFO INFO" +
" ON SJZC.SJZC_ID = INFO.BUSI_ID" +
" WHERE INFO.BUSI_ID IS NOT NULL" +
" AND SJZC.SJZC_ID = ?");
}
String[] ids = (String[]) param.get("ids");
download(sql.toString(), ids, baseForderName, realPath, downloadflag);
//上传到服务器上的文件夹
File file1 = new File(realPath + baseForderName);
//若查询出来的信息为空
if (!file1.exists()) {
throw new DebtException("项目所关联文件不存在!");
}
//若正常执行
result.put("file", file1);
return result;
}
public void download(String sql, String[] ids, String baseForderName, String realPath, String downloadflag) throws Exception {
if (ids != null && ids.length <= 0) {
throw new DebtException("不存在可以下载附件的项目!");
}
//用HashSet去除重复的项目
Set<String> idsSet = new HashSet<String>();
for (String id : ids) {
if (StringUtil.isNotEmpty(id)) {
idsSet.add(id);
}
}
for (String id : idsSet) {
List<Map> filesList = bgdDataSource.findBySql(sql, new Object[]{id});
//若项目上传的附件为空,则跳过
if (filesList != null && filesList.size() <= 0) {
continue;
}
//遍历获取该项目所上传的附件
String absolutePath = null;//文件所属文件夹在服务器下的绝对路径
String relativePath = null;//文件所属文件夹在服务器下的相对路径
File fileDirectory = null;//文件所属文件夹
File fileB = null;//具体文件
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
String createdate = format.format(date);
for (int i = 0; i < filesList.size(); i++) {
Map map = filesList.get(i);
OutputStream os = null;
try {
//构造文件所在文件夹及路径
if ("0".equals(downloadflag)) {
relativePath = baseForderName + File.separator + map.get("AD_CODE") + " " + map.get("AD_NAME")
+ File.separator + map.get("XM_ID") + " " + map.get("XM_NAME");
}else {
relativePath = baseForderName + File.separator + map.get("AD_CODE") + " " + map.get("AD_NAME")
+ File.separator + map.get("XM_ID") + " " + map.get("XM_NAME") + File.separator + createdate;
}
absolutePath = realPath + relativePath;
fileDirectory = new File(absolutePath);
fileB = null;
//创建文件夹路径
if (!fileDirectory.exists()) {
fileDirectory.mkdirs();
}
//创建文件
fileB = new File(fileDirectory, (String) map.get("FILE_NAME"));
if (!fileB.exists()) {
fileB.createNewFile();
} else {
fileB.renameTo(new File(fileB.getParent(), "【重复文件" + i + "】-" + fileB.getName()));
}
//上传文件
os = new BufferedOutputStream(new FileOutputStream(fileB));
boolean falg = downFileAction.getFileOutputStream((String) map.get("FILE_ID"), os);
//若文件不存在或者其他原因导致没有下载成功,则提示文件无效
if (!falg) {
//rename
fileB.renameTo(new File(fileB.getParent(), "【无效文件】-" + fileB.getName()));
}
} catch (Exception e) {
//将异常继续抛出,将异常信息打印,不影响后续文件
System.out.println("【" + relativePath + fileB.separator + fileB.getName() + "】 " + DebtUtils.getExceptionMessage(e));
//throw new DebtException("【"+relativePath+fileB.separator+fileB.getName()+"】 "+e.getMessage()+"");
} finally {
try {
//关闭流
if (os != null) {
os.close();
}
} catch (IOException e) {
throw e;
}
}
}
}
}
}
public boolean getFileOutputStream(String fileId, OutputStream out) {
FileInputStream in = null;
boolean var5;
try {
String realPath = ServletActionContext.getServletContext().getRealPath("/");
Map fileInfo = this.uploadService.getFileInfo(fileId);
String fileSavePath = (String)fileInfo.get("file_path");
String fileName = (String)fileInfo.get("file_name");
String fileMode = (String)fileInfo.get("store_mode");
if ("2".equals(fileMode)) {
byte[] file_data = this.uploadService.downloadFile(fileId);
out.write(file_data);
} else if ("3".equals(fileMode)) {
MongoDBUtil mongoDB = new MongoDBUtil();
mongoDB.findFileByMongoDB(fileId, out);
} else {
String path = fileSavePath;
if (fileSavePath.contains("/")) {
path = fileSavePath.substring(0, fileSavePath.lastIndexOf("/"));
}
String realPathTempFile = ServletActionContext.getServletContext().getRealPath("/tempFile");
String fileTempPath = realPathTempFile + path;
String savePath = fileTempPath + "\\";
if (!AccessControl.createFile(savePath).isDirectory()) {
AccessControl.createFile(savePath).mkdirs();
}
if ("1".equals(fileMode)) {
FTPUtils ftpServer = new FTPUtils();
ftpServer.downFile(fileSavePath, savePath + fileName);
fileSavePath = savePath + fileName;
} else if ("4".equals(fileMode)) {
fileName = fileSavePath.substring(fileSavePath.lastIndexOf("/") + 1);
this.uploadService.downLoadAliyunFile(fileName, savePath);
fileSavePath = savePath + fileName;
} else if ("5".equals(fileMode)) {
SFTPUtils sf = new SFTPUtils();
fileName = fileId + "." + StringTool.getValueFromMapByKey(fileInfo, "FILE_NAME").split("\\.")[1];
if (StringTool.getValueFromMapByKey(fileInfo, "FILE_PATH").contains(".")) {
sf.download(StringTool.getValueFromMapByKey(fileInfo, "FILE_PATH"), savePath + fileName);
} else {
sf.download(fileSavePath + "/" + fileName, savePath + fileName);
}
fileSavePath = savePath + fileName;
}
File file = AccessControl.createFile(fileSavePath);
if (!file.exists()) {
boolean var40 = false;
return var40;
}
in = new FileInputStream(file);
byte[] buffer = new byte[1024];
int len;
while((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
byte[] buff = new byte[2048];
int b;
while(-1 != (b = in.read(buff, 0, buff.length))) {
out.write(buff, 0, b);
}
}
if ("1".equals(fileMode)) {
this.uploadService.deleteFolder(fileSavePath);
}
boolean var37 = true;
return var37;
} catch (Exception var32) {
var32.printStackTrace();
var5 = false;
} finally {
if (in != null) {
try {
in.close();
} catch (IOException var31) {
var31.printStackTrace();
}
}
if (out != null) {
try {
out.close();
} catch (IOException var30) {
var30.printStackTrace();
}
}
}
return var5;
}