ecology_maven/weaver/file/FileUpload.java

1383 lines
51 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package weaver.file;
/**
* Title: hpsales
* Description: for hp sales system
* Copyright: Copyright (c) 2001
* Company: weaver
*
* @author liuyu, Charoes Huang
* @version 1.0 ,2004-6-25
*/
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import weaver.alioss.AliOSSObjectManager;
import weaver.conn.RecordSet;
import weaver.docs.docs.DocManager;
import weaver.docs.docs.ImageFileIdUpdate;
import weaver.email.MailCommonUtils;
import weaver.email.service.MailAliOSSService;
import weaver.file.multipart.DefaultFileRenamePolicy;
import weaver.file.multipart.MultipartRequest;
import weaver.file.multipart.UploadedFile;
import weaver.file.util.FileSuffixCheckUtil;
import weaver.file.util.PicCompression;
import weaver.filter.XssUtil;
import weaver.general.BaseBean;
import weaver.general.GCONST;
import weaver.general.StaticObj;
import weaver.general.Util;
import weaver.security.util.SecurityMethodUtil;
import weaver.system.SystemComInfo;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.net.URLDecoder;
import java.util.*;
import java.util.List;
import java.util.zip.ZipInputStream;
public class FileUpload extends BaseBean {
private static ImageFileIdUpdate imageFileIdUpdate = new ImageFileIdUpdate();
private MultipartRequest mpdata = null;
HttpServletRequest request = null;
private String[] filenames = null;
private InputStream source = null;
private ArrayList filesizes = new ArrayList();
private ArrayList imagewidth = new ArrayList();
private ArrayList imageheight = new ArrayList();
private ArrayList delfilerealpaths = new ArrayList();
private int mailid;
private boolean needimagewidth = false;
private boolean needzip = false;
private boolean needzipencrypt = false;
private String isaesencrypt = "0";
private String aescode = "";
private String remoteAddr = "";
private XssUtil xss = null;
public FileUpload(HttpServletRequest request) {
this.remoteAddr = request.getRemoteAddr();
if (isMultipartData(request)) mpdata = getAttachment(request);
this.request = request;
this.xss = new XssUtil();
}
public FileUpload(HttpServletRequest request, String encode) {
this.remoteAddr = request.getRemoteAddr();
if (isMultipartData(request)) mpdata = getAttachment(request, encode);
this.request = request;
this.xss = new XssUtil();
}
public FileUpload(HttpServletRequest request, String encode, boolean iszip, String isEmail) {
this.remoteAddr = request.getRemoteAddr();
if (isMultipartData(request) && "1".equals(isEmail)) mpdata = getEmailAttachment(request, encode, iszip);
this.request = request;
this.xss = new XssUtil();
}
public FileUpload(HttpServletRequest request, String encode, boolean iszip) {
this.remoteAddr = request.getRemoteAddr();
if (isMultipartData(request)) mpdata = getAttachment(request, encode, iszip);
this.request = request;
this.xss = new XssUtil();
}
public FileUpload(HttpServletRequest request, String encode, boolean iszip, boolean isoriginal) {
this.remoteAddr = request.getRemoteAddr();
if (isMultipartData(request)) mpdata = getAttachment(request, encode, iszip, isoriginal);
this.request = request;
this.xss = new XssUtil();
}
//modify by mackjoe at 2005-11-28 td3282 获得request对象
public HttpServletRequest getRequest() {
return request;
}
//for license upload by chenyingjie 2003-06-26
public FileUpload(HttpServletRequest request, boolean iszip) {
this.remoteAddr = request.getRemoteAddr();
if (isMultipartData(request)) mpdata = getAttachment(request, iszip);
this.request = request;
}
public FileUpload(HttpServletRequest request, boolean iszip, boolean isaesencrypt) {
this.remoteAddr = request.getRemoteAddr();
if (isMultipartData(request)) mpdata = getAttachment(request, iszip, isaesencrypt);
this.request = request;
}
//for homepage image upload by dongping 2006-8-24
public FileUpload(HttpServletRequest request, boolean iszip, String strDirAddr) {
this.remoteAddr = request.getRemoteAddr();
if (isMultipartData(request)) mpdata = getAttachment(request, iszip, strDirAddr);
this.request = request;
}
//html模板图片保存
public FileUpload(HttpServletRequest request, boolean iszip, boolean encoding, String strDirAddr) {
this.remoteAddr = Util.getIpAddr(request);
if (isMultipartData(request)) mpdata = getAttachment(request, iszip, encoding, strDirAddr);
this.request = request;
}
public Hashtable getUploadImgNames() {
String el = "", imgpath = "", imgname = "";
Hashtable ht = new Hashtable();
for (Enumeration e = mpdata.getFileUploadNames(); e.hasMoreElements(); ) {
el = (String) e.nextElement();
if (el.indexOf("docimages_") == -1) continue;
imgpath = Util.null2String(mpdata.getFilePath(el));
imgname = Util.null2String(mpdata.getFileName(el));
if (imgpath.equals("") || imgname.equals("")) continue;
String elNumber = el.substring(el.indexOf("_") + 1, el.length());
ht.put(elNumber, imgpath + imgname);
}
return ht;
}
public Hashtable getUploadFileNames() {
String el = "", imgpath = "", imgname = "";
Hashtable ht = new Hashtable();
for (Enumeration e = mpdata.getFileUploadNames(); e.hasMoreElements(); ) {
el = (String) e.nextElement();
UploadedFile uploadedFile = mpdata.getUploadedFile(el);
ht.put(el, uploadedFile);
}
return ht;
}
//modify by xhheng @20050315 for 流程附件上传
public String getRemoteAddr() {
return remoteAddr;
}
public String getParameter(String key) throws RuntimeException {
if (!isMultipartData(request)) return Util.null2String(request.getParameter(key));
if (mpdata == null) return "";
// return Util.null2String(mpdata.getParameter(key)) ;
try {
String value = Util.null2String(mpdata.getParameter(key));
if (!value.equals("")) {//特殊参数需要从paramsMap中获取
if (value.startsWith(XssUtil.__RANDOM__)) {
//xssUtil.cacheKey(Util.null2String(Thread.currentThread().hashCode()),value);
return xss.get(value);
}
}
return new String(value.getBytes("ISO8859_1"), "UTF-8");
} catch (Exception ex) {
return "";
}
}
public String getParameter2(String key) {
if (!isMultipartData(request)) return Util.null2String(request.getParameter(key));
if (mpdata == null) return "";
String value = Util.null2String(mpdata.getParameter(key));
return value;
}
/**
* 本方法返回值不会对null进行特殊处理如果是null则直接返回null
* 如果是空字符串("")则直接返回空字符串("")。
*
* @param key
* @return
*/
public String getParameter3(String key) {
if (!isMultipartData(request)) {
return request.getParameter(key);
}
if (mpdata == null) {
return null;
}
String value = mpdata.getParameter(key);
if (value == null) {
return null;
}
try {
return new String(value.getBytes("ISO8859_1"), "UTF-8");
} catch (Exception ex) {
return value;
}
}
public String[] getParameters(String key) {
if (!isMultipartData(request)) return request.getParameterValues(key);
if (mpdata == null) return null;
String[] values = mpdata.getParameterValues(key);
return values;
}
public Enumeration getParameterNames() {
if (!isMultipartData(request)) return request.getParameterNames();
if (mpdata == null) return null;
return mpdata.getParameterNames();
}
public String[] getParameterValues(String name) {
if (!isMultipartData(request)) return request.getParameterValues(name);
if (mpdata == null) return null;
String[] values = mpdata.getParameterValues(name);
return values;
}
public String[] getParameterValues2(String name) {
String[] values = null;
if (!isMultipartData(request)) {
values = request.getParameterValues(name);
String[] multivalues = new String[values.length];
try {
for (int i = 0; i < values.length; i++) {
multivalues[i] = new String(Util.null2String(values[i]).getBytes("ISO8859_1"), "UTF-8");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return multivalues;
}
if (mpdata == null) return null;
values = mpdata.getParameterValues(name);
String[] multivalues = new String[values.length];
try {
for (int i = 0; i < values.length; i++) {
multivalues[i] = new String(Util.null2String(values[i]).getBytes("ISO8859_1"), "UTF-8");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return multivalues;
}
public String getFileName() {
return this.filenames[0].replace("'", "");
}
public String[] getFileNames() {
return this.filenames;
}
public void setFileNames(String[] filenames) {
this.filenames = filenames;
}
public int getFileSize() {
return Util.getIntValue((String) this.filesizes.get(0));
}
public int[] getFileSizes() {
int[] filesizearr = new int[filesizes.size()];
for (int i = 0; i < filesizes.size(); i++) filesizearr[i] = Util.getIntValue((String) this.filesizes.get(i));
return filesizearr;
}
public void setFileSizes(ArrayList filesizes) {
this.filesizes = filesizes;
}
public int getWidth() {
return Util.getIntValue((String) this.imagewidth.get(0));
}
public int getHeight() {
return Util.getIntValue((String) this.imageheight.get(0));
}
public int[] getWidths() {
int[] imagewidtharr = new int[imagewidth.size()];
for (int i = 0; i < imagewidth.size(); i++)
imagewidtharr[i] = Util.getIntValue((String) this.imagewidth.get(i));
return imagewidtharr;
}
public int[] getHeights() {
int[] imageheightarr = new int[imageheight.size()];
for (int i = 0; i < imageheight.size(); i++)
imageheightarr[i] = Util.getIntValue((String) this.imageheight.get(i));
return imageheightarr;
}
public void setMailid(int mailid) {
this.mailid = mailid;
}
public int getMailid() {
return mailid;
}
public void needImagewidth(boolean needimagewidth) {
this.needimagewidth = needimagewidth;
}
public ArrayList getDelFilerealpaths() {
return delfilerealpaths;
}
public String uploadFiles(String uploadname) {
String[] uploadnames = new String[1];
uploadnames[0] = uploadname;
String paramFileName = this.getParameter("name"); //获取参数当中的文件名
//String[] filenames = uploadFiles(uploadnames) ;
String[] filenames = uploadFiles(uploadnames, paramFileName);
if (filenames == null || filenames.length < 1) {
return null;
}
return filenames[0];
}
//add by liuy 20190705 start
/* 上传文件文件名IOS系统出现错误问题修复
*
*/
public String[] uploadFiles(String[] uploadnames, String paramFileName) {
if (mpdata == null) return null;
int upload_numbers = uploadnames.length;
String[] fileids = new String[upload_numbers];
this.filenames = new String[upload_numbers];
for (int i = 0; i < upload_numbers; i++) {
filenames[i] = SecurityMethodUtil.textXssClean(mpdata.getOriginalFileName(uploadnames[i]));
if (filenames[i] == null || "".equals(filenames[i])) {
return fileids;
}
//满足三个条件否则走else
//1 请求参数未包含文件名
//2 有请求参数并且和上传文件流里的文件名参数一致
//3 值不一致但是文件流里的文件名为file防止 IOS篡改
if (StringUtils.isBlank(paramFileName) || paramFileName.equals(filenames[i]) || (!paramFileName.equals(filenames[i]) && !"file".equals(filenames[i]))) {
fileids[i] = saveFile(uploadnames[i], mpdata);
} else {
filenames[i] = paramFileName; //修改文件名
fileids[i] = saveFile(uploadnames[i], paramFileName, mpdata);
}
}
return fileids;
}
public String[] uploadFiles(String[] uploadnames) {
if (mpdata == null) return null;
int upload_numbers = uploadnames.length;
String[] fileids = new String[upload_numbers];
this.filenames = new String[upload_numbers];
for (int i = 0; i < upload_numbers; i++) {
filenames[i] = SecurityMethodUtil.textXssClean(mpdata.getOriginalFileName(uploadnames[i]));
if (filenames[i] != null && !filenames[i].equals("")) {
fileids[i] = saveFile(uploadnames[i], mpdata);
}
}
return fileids;
}
/**
* 处理邮件模块上传的附件存储
*
* @param uploadname
* @return
*/
public String uploadFilesToEmail(String uploadname) {
String[] uploadnames = new String[1];
uploadnames[0] = uploadname;
String[] filenames = uploadFilesToEmail(uploadnames);
return filenames[0];
}
/**
* 处理邮件模块上传的附件存储
*
* @param uploadnames
* @return
*/
public String[] uploadFilesToEmail(String[] uploadnames) {
if (mpdata == null) return null;
int upload_numbers = uploadnames.length;
String[] fileids = new String[upload_numbers];
this.filenames = new String[upload_numbers];
for (int i = 0; i < upload_numbers; i++) {
filenames[i] = SecurityMethodUtil.textXssClean(mpdata.getOriginalFileName(uploadnames[i]));
if (filenames[i] != null && !filenames[i].equals("")) {
fileids[i] = saveFileToEmail(uploadnames[i], mpdata);
}
}
return fileids;
}
/**
* 保存邮件附件记录到mailresourcefile表。
*
* @param uploadname
* @param mpdata
* @return
*/
private synchronized String saveFileToEmail(String uploadname, MultipartRequest mpdata) {
String imageid = "";
String filepath = mpdata.getFilePath(uploadname);
String filename = mpdata.getFileName(uploadname);
String originalfilename = SecurityMethodUtil.textXssClean(mpdata.getOriginalFileName(uploadname));
writeLog("-saveFileToEmail-filename:" + filename + "-originalfilename:" + originalfilename);
originalfilename = StringEscapeUtils.unescapeHtml(originalfilename);
writeLog("-saveFileToEmail-unescapeHtml-originalfilename:" + originalfilename);
String contenttype = mpdata.getContentType(uploadname);
long filesize = mpdata.getFileSize(uploadname);
String filerealpath = filepath + filename;
// WeavermailComInfo wmc = new WeavermailComInfo() ;
String isfileattrachment = "1";// wmc.getCurrentFileAttachment() ;
String fileContentId = "";// wmc.getCurrentFileContentId();
String isEncoded = "";// wmc.getCurrentFilenameencode();
String secretLevel = Util.null2s(getParameter("secretLevel"), "4");
String secretDeadline = Util.null2s(getParameter("secretLevelValidity"), "");
//判断实体文件是否存在,如果不存在,保存失败。
File file = new File(filerealpath);
if (!file.exists()) {
writeLog("检测到实体文件不存在,附件上传失败.originalfilename=" + originalfilename + ",filerealpath=" + filerealpath);
return imageid;
}
String iszip = "0";
String isencrypt = "0";
if (needzip) iszip = "1";
if (needzipencrypt) isencrypt = "1";
originalfilename = escapeSpecialCharactersForFileName(originalfilename);
RecordSet rs = new RecordSet();
char separator = Util.getSeparator();
String mailFileUUID = MailCommonUtils.getRandomUUID();
String para = "0" + separator + originalfilename + separator + contenttype + separator + filerealpath
+ separator + iszip + separator + isencrypt + separator + isfileattrachment + separator + fileContentId
+ separator + isEncoded + separator + String.valueOf(filesize) + separator + mailFileUUID;
rs.executeProc("MailResourceFile_Insert", para);
rs.executeQuery("select id from MailResourceFile where mrf_uuid = ?", mailFileUUID);
if (rs.next()) {
imageid = rs.getString("id");
}
// 更新加密信息
rs.executeUpdate("update MailResourceFile set isaesencrypt=?, aescode=?, secretLevel=?, secretDeadline=? where id=?", isaesencrypt, aescode, secretLevel, secretDeadline, imageid);
//处理oss存储逻辑
MailAliOSSService mailAliOSSService = new MailAliOSSService();
mailAliOSSService.updateFileToOSSByUUID(mailFileUUID);
return imageid;
}
/**
* 过滤附件名称里的特殊字符,防止入库 是出现 问号?
*
* @param fileName
* @return
*/
private String escapeSpecialCharactersForFileName(String fileName) {
fileName = Util.null2String(fileName);
fileName = fileName.replaceAll("(\r\n|\r|\n|\n\r)", "").replaceAll("\t", ""); // 替换换行符tab符
//替换英文半角字符,防止半角字符展示为?问号 https://tbatm.iteye.com/blog/2196068
byte bytes[] = {(byte) 0xC2, (byte) 0xA0};
try {
String UTFSpace = new String(bytes, "utf-8");
fileName = fileName.replaceAll(UTFSpace, " ");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return fileName;
}
/**
* 处理邮件模块上传的附件存储
*
* @param uploadnames
* @param withsave
* @return
*/
public ArrayList uploadFilesToMail(String[] uploadnames, String withsave) {
if (mpdata == null) return null;
int upload_numbers = uploadnames.length;
ArrayList filecontents = new ArrayList();
this.filenames = new String[upload_numbers];
for (int i = 0; i < upload_numbers; i++) {
String tempfilename = SecurityMethodUtil.textXssClean(mpdata.getOriginalFileName(uploadnames[i]));
if (tempfilename != null && !tempfilename.equals("")) {
filenames[i] = tempfilename;
filecontents.add(getFileContent(uploadnames[i], mpdata, withsave));
}
}
return filecontents;
}
private MultipartRequest getAttachment(HttpServletRequest req) {
if (isMultipartData(req))
try {
DefaultFileRenamePolicy defpolicy = new DefaultFileRenamePolicy();
SystemComInfo syscominfo = new SystemComInfo();
String createdir = getCreateDir(syscominfo.getFilesystem());
isaesencrypt = syscominfo.getIsaesencrypt();
aescode = Util.getRandomString(13);
if ((syscominfo.getNeedzip()).equals("1")) needzip = true;
// if( (syscominfo.getNeedzipencrypt()).equals("1") ) needzipencrypt = true ;
return new MultipartRequest(req, createdir, req.getContentLength(), defpolicy, needzip, needzipencrypt, "", isaesencrypt, aescode);
} catch (Exception ex) {
writeLog(ex);
return null;
}
return null;
}
private MultipartRequest getAttachment(HttpServletRequest req, String encoding) {
if (isMultipartData(req))
try {
DefaultFileRenamePolicy defpolicy = new DefaultFileRenamePolicy();
SystemComInfo syscominfo = new SystemComInfo();
String createdir = getCreateDir(syscominfo.getFilesystem());
isaesencrypt = syscominfo.getIsaesencrypt();
aescode = Util.getRandomString(13);
if ((syscominfo.getNeedzip()).equals("1")) needzip = true;
// if( (syscominfo.getNeedzipencrypt()).equals("1") ) needzipencrypt = true ;
return new MultipartRequest(req, createdir, req.getContentLength(), defpolicy, needzip, needzipencrypt, encoding, isaesencrypt, aescode);
} catch (Exception ex) {
writeLog(ex);
return null;
}
return null;
}
private MultipartRequest getEmailAttachment(HttpServletRequest req, String encoding, boolean iszip) {
if (isMultipartData(req))
try {
DefaultFileRenamePolicy defpolicy = new DefaultFileRenamePolicy();
SystemComInfo syscominfo = new SystemComInfo();
// String createdir = getCreateDir(syscominfo.getFilesystem()) ;
String createdir = GCONST.getRootPath() + "filesystem" + File.separatorChar;
createdir = getCreateDir(createdir + File.separatorChar);
RecordSet rs = new RecordSet();
rs.execute("select filePath from MailConfigureInfo");
while (rs.next()) {
String emailpath = rs.getString("filePath");
if (!"".equals(emailpath)) {
createdir = getCreateDir(emailpath + File.separatorChar);
}
}
isaesencrypt = syscominfo.getIsaesencrypt();
aescode = Util.getRandomString(13);
needzip = iszip;
// if( (syscominfo.getNeedzipencrypt()).equals("1") ) needzipencrypt = true ;
return new MultipartRequest(req, createdir, req.getContentLength(), defpolicy, needzip, needzipencrypt, encoding, isaesencrypt, aescode);
} catch (Exception ex) {
writeLog(ex);
return null;
}
return null;
}
protected MultipartRequest getAttachment(HttpServletRequest req, String encoding, boolean iszip) {
if (isMultipartData(req))
try {
DefaultFileRenamePolicy defpolicy = new DefaultFileRenamePolicy();
SystemComInfo syscominfo = new SystemComInfo();
String createdir = getCreateDir(syscominfo.getFilesystem());
isaesencrypt = syscominfo.getIsaesencrypt();
aescode = Util.getRandomString(13);
needzip = iszip;
// if( (syscominfo.getNeedzipencrypt()).equals("1") ) needzipencrypt = true ;
return new MultipartRequest(req, createdir, req.getContentLength(), defpolicy, needzip, needzipencrypt, encoding, isaesencrypt, aescode);
} catch (Exception ex) {
writeLog(ex);
return null;
}
return null;
}
private MultipartRequest getAttachment(HttpServletRequest req, String encoding, boolean iszip, boolean original) {
if (isMultipartData(req))
try {
DefaultFileRenamePolicy defpolicy = null;
SystemComInfo syscominfo = new SystemComInfo();
String createdir = getCreateDir(syscominfo.getFilesystem());
isaesencrypt = "0";
aescode = Util.getRandomString(13);
needzip = false;
if (!original) {
isaesencrypt = syscominfo.getIsaesencrypt();
aescode = Util.getRandomString(13);
needzip = iszip;
}
// if( (syscominfo.getNeedzipencrypt()).equals("1") ) needzipencrypt = true ;
return new MultipartRequest(req, createdir, req.getContentLength(), defpolicy, needzip, needzipencrypt, encoding, isaesencrypt, aescode);
} catch (Exception ex) {
writeLog(ex);
return null;
}
return null;
}
//for license upload by chenyingjie 2003-06-26
private MultipartRequest getAttachment(HttpServletRequest req, boolean iszip) {
if (isMultipartData(req))
try {
DefaultFileRenamePolicy defpolicy = new DefaultFileRenamePolicy();
SystemComInfo syscominfo = new SystemComInfo();
String createdir = getCreateDir(syscominfo.getFilesystem());
isaesencrypt = syscominfo.getIsaesencrypt();
aescode = Util.getRandomString(13);
if ((syscominfo.getNeedzip()).equals("1")) needzip = true;
// if( (syscominfo.getNeedzipencrypt()).equals("1") ) needzipencrypt = true ;
if (!iszip) needzip = false;
return new MultipartRequest(req, createdir, req.getContentLength(), defpolicy, needzip, needzipencrypt, "", isaesencrypt, aescode);
} catch (Exception ex) {
writeLog(ex);
return null;
}
return null;
}
private MultipartRequest getAttachment(HttpServletRequest req, boolean iszip, boolean isaesencryptBoolean) {
if (isMultipartData(req))
try {
DefaultFileRenamePolicy defpolicy = new DefaultFileRenamePolicy();
SystemComInfo syscominfo = new SystemComInfo();
String createdir = getCreateDir(syscominfo.getFilesystem());
if (isaesencryptBoolean) {
isaesencrypt = syscominfo.getIsaesencrypt();
aescode = Util.getRandomString(13);
}
if ((syscominfo.getNeedzip()).equals("1")) needzip = true;
// if( (syscominfo.getNeedzipencrypt()).equals("1") ) needzipencrypt = true ;
if (!iszip) needzip = false;
return new MultipartRequest(req, createdir, req.getContentLength(), defpolicy, needzip, needzipencrypt, "", isaesencrypt, aescode);
} catch (Exception ex) {
writeLog(ex);
return null;
}
return null;
}
public List getFiles() {
if (mpdata == null) return null;
return mpdata.getFiles();
}
//for homepage edit by dongping 2006-08-24
private MultipartRequest getAttachment(HttpServletRequest req, boolean iszip, String strDirAddr) {
if (isMultipartData(req))
try {
DefaultFileRenamePolicy defpolicy = new DefaultFileRenamePolicy();
SystemComInfo syscominfo = new SystemComInfo();
//String createdir = getCreateDir(syscominfo.getFilesystem()) ;
isaesencrypt = syscominfo.getIsaesencrypt();
aescode = Util.getRandomString(13);
String createdir = getCreateDir(GCONST.getRootPath() + strDirAddr);
if ((syscominfo.getNeedzip()).equals("1")) needzip = true;
//if( (syscominfo.getNeedzipencrypt()).equals("1") ) needzipencrypt = true ;
if (!iszip) needzip = false;
return new MultipartRequest(req, createdir, req.getContentLength(), defpolicy, needzip, needzipencrypt, "", isaesencrypt, aescode);
} catch (Exception ex) {
writeLog(ex);
return null;
}
return null;
}
//html模板图片保存
private MultipartRequest getAttachment(HttpServletRequest req, boolean iszip, boolean encoding, String strDirAddr) {
if (isMultipartData(req))
try {
DefaultFileRenamePolicy defpolicy = new DefaultFileRenamePolicy();
SystemComInfo syscominfo = new SystemComInfo();
//String createdir = getCreateDir(syscominfo.getFilesystem()) ;
isaesencrypt = syscominfo.getIsaesencrypt();
if (!encoding) isaesencrypt = "0";
aescode = Util.getRandomString(13);
String createdir = getCreateDir(GCONST.getRootPath() + strDirAddr);
if ((syscominfo.getNeedzip()).equals("1")) needzip = true;
//if( (syscominfo.getNeedzipencrypt()).equals("1") ) needzipencrypt = true ;
if (!iszip) needzip = false;
return new MultipartRequest(req, createdir, req.getContentLength(), defpolicy, needzip, needzipencrypt, "", isaesencrypt, aescode);
} catch (Exception ex) {
writeLog(ex);
return null;
}
return null;
}
private InputStream getFileContent(String uploadname, MultipartRequest mpdata, String withsave) {
if (withsave.equals("1") || withsave.equals("2")) {
String filepath = mpdata.getFilePath(uploadname);
String filename = mpdata.getFileName(uploadname);
String originalfilename = SecurityMethodUtil.textXssClean(mpdata.getOriginalFileName(uploadname));
String contenttype = mpdata.getContentType(uploadname);
long filesize = mpdata.getFileSize(uploadname);
String filerealpath = filepath + filename;
//WeavermailComInfo wmc = new WeavermailComInfo() ;
String isfileattrachment = "1";//wmc.getCurrentFileAttachment() ;
String fileContentId = "";//wmc.getCurrentFileContentId();
String isEncoded = "";//wmc.getCurrentFilenameencode();
String iszip = "0";
String isencrypt = "0";
if (needzip) iszip = "1";
if (needzipencrypt) isencrypt = "1";
RecordSet rs = new RecordSet();
char separator = Util.getSeparator();
String para = "" + mailid + separator + originalfilename + separator
+ contenttype + separator + filerealpath + separator
+ iszip + separator + isencrypt + separator + isfileattrachment + separator
+ fileContentId + separator + isEncoded + separator + String.valueOf(filesize);
rs.executeProc("MailResourceFile_Insert", para);
} else {
String filepath = mpdata.getFilePath(uploadname);
String filename = mpdata.getFileName(uploadname);
String filerealpath = filepath + filename;
delfilerealpaths.add(filerealpath);
}
try {
File thefile = mpdata.getFile(uploadname);
if (needzip) {
ZipInputStream zin = new ZipInputStream(new FileInputStream(thefile));
if (zin.getNextEntry() != null) source = new BufferedInputStream(zin);
} else source = new BufferedInputStream(new FileInputStream(thefile));
} catch (Exception e) {
writeLog(e);
}
return source;
/* 原有的存储附件数据在数据库中的方式
boolean isoracle = (statement.getDBType()).equals("oracle") ;
try {
statement = new ConnStatement();
File thefile = mpdata.getFile(uploadname) ;
int fileLength = new Long(thefile.length()).intValue();
source = new BufferedInputStream(new FileInputStream(thefile),500*1024) ;
String sql = "" ;
if( isoracle) {
sql = "insert into MailResourceFile(mailid,filename,attachfile,filetype) values(?,?,empty_blob(),?)";
statement.setStatementSql(sql);
statement.setInt(1,mailid);
statement.setString(2,filename) ;
statement.setString(3,contenttype) ;
statement.executeUpdate();
sql = "select rownum, attachfile from ( select attachfile from MailResourceFile order by id desc ) where rownum = 1 " ;
statement.setStatementSql(sql);
statement.executeQuery();
statement.next() ;
BLOB theblob = statement.getBlob(2) ;
int bytesize = theblob.getBufferSize() ;
byte[] buffer = new byte[bytesize] ;
OutputStream outstream = theblob.getBinaryOutputStream() ;
int length = -1 ;
while((length = source.read(buffer)) != -1)
outstream.write(buffer, 0 , length) ;
outstream.close() ;
}
else {
sql = "insert into MailResourceFile(mailid,filename,attachfile,filetype) values(?,?,?,?)";
statement.setStatementSql(sql);
statement.setInt(1,mailid);
statement.setString(2,filename) ;
statement.setBinaryStream(3,source,fileLength);
statement.setString(4,contenttype) ;
statement.executeUpdate();
}
source.close() ;
thefile.delete() ;
if(withsave.equals("1")) {
sql = "select max(id) from MailResourceFile " ;
statement.setStatementSql(sql);
statement.executeQuery();
statement.next() ;
int fileid = statement.getInt(1) ;
sql = "select attachfile from MailResourceFile where id = " + fileid;
statement.setStatementSql(sql);
statement.executeQuery();
statement.next() ;
byte[] imagebyte = null ;
if( isoracle ) imagebyte = statement.getBlobByte("attachfile") ;
else imagebyte = statement.getBytes("attachfile") ;
source = new BufferedInputStream(new ByteArrayInputStream(imagebyte),500*1024) ;
}
statement.close() ;
}catch(Exception ex){}
}
return source ; */
}
private synchronized String saveFile(String uploadname, MultipartRequest mpdata) {
int imageid = 0;
String filepath = mpdata.getFilePath(uploadname);
String filename = mpdata.getFileName(uploadname);
String originalfilename = SecurityMethodUtil.textXssClean(mpdata.getOriginalFileName(uploadname));
String contenttype = mpdata.getContentType(uploadname);
long filesize = mpdata.getFileSize(uploadname);
String _imagefilename = Util.null2String(getParameter("imagefilename"));
String __originalfilename = Util.null2String(originalfilename);
String _extname = __originalfilename.contains(".") ? __originalfilename.substring(__originalfilename.indexOf(".")) : "";
if (!_imagefilename.isEmpty() && ("".equals(_extname) || _imagefilename.endsWith(_extname))) {
originalfilename = _imagefilename;
}
if (filesize == 0) {
writeLog("^^^^^^^^^(文件大小为0)(" + originalfilename + ")^^^^^^^^^^^filepath=" + filepath + filename);
return null;
}
String filerealpath = filepath + filename;
int fieldId = Util.getIntValue(getParameter("fieldId"));
int workflowId = Util.getIntValue(getParameter("workflowId"));
/*
* QC675390概述前后台增加附件上传格式控制
* 如果上传文件的文件名后缀不符合配置文件中的要求,则不上传
*/
if (!FileSuffixCheckUtil.isEnableUpload(originalfilename) || (fieldId > 0 && workflowId > 0 && !checkFileSuffix(originalfilename, fieldId, workflowId))) {
writeLog("^^^^^^^^^(文件拦截)(" + originalfilename + ")^^^^^^^^^^^filepath=" + filepath + filename);
File _tempFile = new File(filerealpath);
// 如果文件存在,且是文件,删除
if (_tempFile.exists() && _tempFile.isFile()) {
FileSecurityUtil.deleteFile(_tempFile);
// _tempFile.delete();
}
return null;
}
//tagtag需要压缩图片
//System.out.println("contenttype:"+ contenttype);
//System.out.println("filerealpath:"+ filerealpath);
String needCompressionPic = (String) this.request.getAttribute("needCompressionPic");
if ("1".equals(needCompressionPic) && !needzip) {
PicCompression picCompression = new PicCompression();
String s = picCompression.compress(filerealpath, 1280, 1024, 1);
}
String imagefileused = "1";
String iszip = "0";
String isencrypt = "0";
if (needzip) iszip = "1";
if (needzipencrypt) isencrypt = "1";
RecordSet rs = new RecordSet();
char separator = Util.getSeparator();
//rs.executeProc("SequenceIndex_SelectFileid" , "" );
//if( rs.next() ) imageid = Util.getIntValue(rs.getString(1));
imageid = imageFileIdUpdate.getImageFileNewId();
String originalfilenameflag = originalfilename;
try {
// if(UrlEncoderUtils.hasUrlEncoded(originalfilename)){
//originalfilename = originalfilename.replaceAll("[%]","%25").replaceAll("[+]","%2B");
originalfilename = URLDecoder.decode(originalfilename, "utf-8");
// }
} catch (Exception e) {
originalfilename = originalfilenameflag;
//e.printStackTrace();
}
String para = "" + imageid + separator + originalfilename + separator
+ contenttype + separator + imagefileused + separator + filerealpath + separator
+ iszip + separator + isencrypt + separator + filesize;
rs.executeProc("ImageFile_Insert", para);
AliOSSObjectManager aliOSSObjectManager = new AliOSSObjectManager();
String tokenKey = aliOSSObjectManager.getTokenKeyByFileRealPath(filerealpath);
String secretLevel = Util.null2s(getParameter("secretLevel"), DocManager.DEFAILT_SECRET_LEVEL + "");
String secretValidity = Util.null2s(getParameter("secretLevelValidity"), "");
String name = Util.null2s(getParameter("name"), "");
String sql = "update imagefile set isaesencrypt=" + isaesencrypt + ", aescode='" + aescode + "',TokenKey='" + tokenKey + "',secretLevel=" + secretLevel + ",secretValidity='" + secretValidity + "' where imagefileid=" + imageid;
// rs.writeLog("fileupload1111-----fileid:"+imageid+"---name:"+name+"--secretLevel:"+secretLevel+"--secretValidity:"+secretValidity+"--sql"+sql);
// 更新加密信息
rs.executeUpdate(sql);
try { // add by liuyu to get image file width and height
if (contenttype.indexOf("image") != -1 && needimagewidth) {
File thefile = mpdata.getFile(uploadname);
long fileLength = thefile.length();
filesizes.add("" + fileLength);
if (needzip) {
ZipInputStream zin = new ZipInputStream(new FileInputStream(thefile));
if (zin.getNextEntry() != null) source = new BufferedInputStream(zin);
} else source = new BufferedInputStream(new FileInputStream(thefile));
if (isaesencrypt.equals("1")) {
source = AESCoder.decrypt(source, aescode);
}
//byte[] imagebyte = new byte[64*1024] ;
//StringBuffer buf = new StringBuffer();
//while (source.read(imagebyte, 0, imagebyte.length) != -1) buf.append(imagebyte);
//ByteArraySeekableStream bs = new ByteArraySeekableStream((buf.toString()).getBytes()) ;
//RenderedOp bimage = JAI.create("stream", bs);
//imagewidth.add(""+bimage.getWidth()) ;
//imageheight.add(""+bimage.getHeight()) ;
ImageInfo ii = new ImageInfo();
ii.setInput(source);
if (!ii.check()) {
imagewidth.add("0");
imageheight.add("0");
} else {
imagewidth.add("" + ii.getWidth());
imageheight.add("" + ii.getHeight());
}
} else {
imagewidth.add("0");
imageheight.add("0");
filesizes.add("0");
}
} catch (Exception imgex) {
imagewidth.add("0");
imageheight.add("0");
filesizes.add("0");
}
return imageid + "";
/* 原有的存储附件数据在数据库中的方式
try {
File thefile = mpdata.getFile(uploadname) ;
int fileLength = new Long(thefile.length()).intValue();
source = new BufferedInputStream(new FileInputStream(thefile),500*1024) ;
filesizes.add(""+fileLength) ;
statement = new ConnStatement();
boolean isoracle = (statement.getDBType()).equals("oracle") ;
String sql = "select currentid from SequenceIndex where indexdesc='imagefileid'";
statement.setStatementSql(sql);
statement.executeQuery();
if(statement.next()){
imageid = statement.getInt("currentid");
}
sql = "update SequenceIndex set currentid=? where indexdesc='imagefileid'";
statement.setStatementSql(sql);
statement.setInt(1,imageid+1);
statement.executeUpdate();
if( isoracle) {
sql = "insert into ImageFile values(?,?,?,empty_blob(),?)";
statement.setStatementSql(sql);
statement.setInt(1,imageid);
statement.setString(2,filename) ;
statement.setString(3,contenttype) ;
statement.setInt(4,1);
statement.executeUpdate();
sql = "select imagefile from ImageFile where imagefileid = " + imageid ;
statement.setStatementSql(sql);
statement.executeQuery();
statement.next() ;
BLOB theblob = statement.getBlob(1) ;
int bytesize = theblob.getBufferSize() ;
byte[] buffer = new byte[bytesize] ;
OutputStream outstream = theblob.getBinaryOutputStream() ;
int length = -1 ;
while((length = source.read(buffer)) != -1)
outstream.write(buffer, 0 , length) ;
outstream.close() ;
}
else {
sql = "insert into ImageFile values(?,?,?,?,?)";
statement.setStatementSql(sql);
statement.setInt(1,imageid);
statement.setString(2,filename) ;
statement.setString(3,contenttype) ;
statement.setBinaryStream(4,source,fileLength);
statement.setInt(5,1);
statement.executeUpdate();
}
source.close();
thefile.delete() ;
try { // add by liuyu to get image file width and height
if(contenttype.indexOf("image") != -1 && needimagewidth) {
sql = "select imagefile from ImageFile where imagefileid = "+imageid;
statement.setStatementSql(sql);
statement.executeQuery();
statement.next() ;
byte[] imagebyte = null ;
if( isoracle ) imagebyte = statement.getBlobByte("imagefile") ;
else imagebyte = statement.getBytes("imagefile") ;
ByteArraySeekableStream bs = new ByteArraySeekableStream(imagebyte) ;
RenderedOp bimage = JAI.create("stream", bs);
imagewidth.add(""+bimage.getWidth()) ;
imageheight.add(""+bimage.getHeight()) ;
}
else {
imagewidth.add("0") ;
imageheight.add("0") ;
}
}
catch (Exception imgex) {
imagewidth.add("0") ;
imageheight.add("0") ;
}
statement.close() ;
}
catch (Exception ex) { writeLog(ex); }
return imageid+""; */
}
private synchronized String saveFile(String uploadname, String paramFileName, MultipartRequest mpdata) {
int imageid = 0;
String filepath = mpdata.getFilePath(uploadname);
String filename = mpdata.getFileName(uploadname);
String originalfilename = paramFileName;
String contenttype = mpdata.getContentType(uploadname);
long filesize = mpdata.getFileSize(uploadname);
String _imagefilename = Util.null2String(getParameter("imagefilename"));
String __originalfilename = Util.null2String(originalfilename);
String _extname = __originalfilename.contains(".") ? __originalfilename.substring(__originalfilename.indexOf(".")) : "";
if (!_imagefilename.isEmpty() && ("".equals(_extname) || _imagefilename.endsWith(_extname))) {
originalfilename = _imagefilename;
}
if (filesize == 0) {
writeLog("^^^^^^^^^(文件大小为0)(" + originalfilename + ")^^^^^^^^^^^filepath=" + filepath + filename);
return null;
}
String filerealpath = filepath + filename;
//tagtag需要压缩图片
//System.out.println("contenttype:"+ contenttype);
//System.out.println("filerealpath:"+ filerealpath);
String needCompressionPic = (String) this.request.getAttribute("needCompressionPic");
if ("1".equals(needCompressionPic) && !needzip) {
PicCompression picCompression = new PicCompression();
String s = picCompression.compress(filerealpath, 1280, 1024, 1);
}
String imagefileused = "1";
String iszip = "0";
String isencrypt = "0";
if (needzip) iszip = "1";
if (needzipencrypt) isencrypt = "1";
RecordSet rs = new RecordSet();
char separator = Util.getSeparator();
//rs.executeProc("SequenceIndex_SelectFileid" , "" );
//if( rs.next() ) imageid = Util.getIntValue(rs.getString(1));
imageid = imageFileIdUpdate.getImageFileNewId();
String originalfilenameflag = originalfilename;
try {
// if(UrlEncoderUtils.hasUrlEncoded(originalfilename)){
//originalfilename = originalfilename.replaceAll("[%]","%25").replaceAll("[+]","%2B");
originalfilename = URLDecoder.decode(originalfilename, "utf-8");
// }
} catch (Exception e) {
originalfilename = originalfilenameflag;
//e.printStackTrace();
}
String para = "" + imageid + separator + originalfilename + separator
+ contenttype + separator + imagefileused + separator + filerealpath + separator
+ iszip + separator + isencrypt + separator + filesize;
rs.executeProc("ImageFile_Insert", para);
AliOSSObjectManager aliOSSObjectManager = new AliOSSObjectManager();
String tokenKey = aliOSSObjectManager.getTokenKeyByFileRealPath(filerealpath);
String secretLevel = Util.null2s(getParameter("secretLevel"), DocManager.DEFAILT_SECRET_LEVEL + "");
String secretValidity = Util.null2s(getParameter("secretLevelValidity"), "");
String name = Util.null2s(getParameter("name"), "");
String sql = "update imagefile set isaesencrypt=" + isaesencrypt + ", aescode='" + aescode + "',TokenKey='" + tokenKey + "',secretLevel=" + secretLevel + ",secretValidity='" + secretValidity + "' where imagefileid=" + imageid;
// rs.writeLog("fileupload2222-----fileid:"+imageid+"---name:"+name+"--secretLevel:"+secretLevel+"--secretValidity:"+secretValidity+"--sql:"+sql);
// 更新加密信息
rs.executeUpdate(sql);
aliOSSObjectManager.uploadFile(filerealpath, originalfilename, iszip, isaesencrypt, aescode);
try { // add by liuyu to get image file width and height
if (contenttype.indexOf("image") != -1 && needimagewidth) {
File thefile = mpdata.getFile(uploadname);
long fileLength = thefile.length();
filesizes.add("" + fileLength);
if (needzip) {
ZipInputStream zin = new ZipInputStream(new FileInputStream(thefile));
if (zin.getNextEntry() != null) source = new BufferedInputStream(zin);
} else source = new BufferedInputStream(new FileInputStream(thefile));
if (isaesencrypt.equals("1")) {
source = AESCoder.decrypt(source, aescode);
}
//byte[] imagebyte = new byte[64*1024] ;
//StringBuffer buf = new StringBuffer();
//while (source.read(imagebyte, 0, imagebyte.length) != -1) buf.append(imagebyte);
//ByteArraySeekableStream bs = new ByteArraySeekableStream((buf.toString()).getBytes()) ;
//RenderedOp bimage = JAI.create("stream", bs);
//imagewidth.add(""+bimage.getWidth()) ;
//imageheight.add(""+bimage.getHeight()) ;
ImageInfo ii = new ImageInfo();
ii.setInput(source);
if (!ii.check()) {
imagewidth.add("0");
imageheight.add("0");
} else {
imagewidth.add("" + ii.getWidth());
imageheight.add("" + ii.getHeight());
}
} else {
imagewidth.add("0");
imageheight.add("0");
filesizes.add("0");
}
} catch (Exception imgex) {
imagewidth.add("0");
imageheight.add("0");
filesizes.add("0");
}
return imageid + "";
}
private boolean isMultipartData(HttpServletRequest req) {
return Util.null2String(req.getContentType()).toLowerCase().startsWith("multipart/form-data");
}
public static String getCreateDir(String createdir) {
if (createdir == null) {
StaticObj staticObj = StaticObj.getInstance();
staticObj.removeObject("SystemInfo");
SystemComInfo syscominfo = new SystemComInfo();
createdir = syscominfo.getFilesystem();
}
if (createdir == null || createdir.equals("")) createdir = GCONST.getSysFilePath();
else {
createdir = Util.StringReplace(createdir, "\\", "#$^123");
createdir = Util.StringReplace(createdir, "/", "#$^123");
createdir = Util.StringReplace(createdir, "#$^123", File.separator);
//if( createdir.lastIndexOf(File.separator) < 0 ) createdir += File.separator ;
if (!createdir.endsWith(File.separator)) {
createdir += File.separator;
}
}
Calendar today = Calendar.getInstance();
String currentyear = Util.add0(today.get(Calendar.YEAR), 4);
String currentmonth = Util.add0(today.get(Calendar.MONTH) + 1, 2);
Random random = new Random();
int randomint = 1 + random.nextInt(26);
String charstr = Util.getCharString(randomint);
createdir += currentyear + currentmonth + File.separatorChar + charstr + File.separatorChar;
String ostype = System.getProperty("os.arch");
String osname = System.getProperty("os.name").toLowerCase();
//if (!ostype.equals("x86")&&!ostype.equals("amd64")) {
if (!osname.startsWith("windows")) {
try {
if (!createdir.substring(0, 1).equals(File.separator)) {
new BaseBean().writeLog("WRAN................File path=[" + createdir + "] os=[" + ostype + "]");
createdir = File.separator + createdir;
new BaseBean().writeLog("WRAN................Changed path=[" + createdir + "] os=[" + ostype + "]");
}
} catch (Exception e) {
}
}
return createdir;
}
//获取文件的原始名称
public String getFileOriginalFileName(String uploadame) {
return SecurityMethodUtil.textXssClean(mpdata.getOriginalFileName(uploadame));
}
//根据文件名获取文件
public File getFile(String filename) {
return mpdata.getFile(filename);
}
/**
* 根据参数名判断文件是否可以上传, 查询参数名为file对应的文件的后缀
*
* @return
*/
public boolean canUploadCheckBySecid() {
return canUploadCheckBySecid("file");
}
/**
* 根据 uplaodfilename 查找指定的物理文件的文件名,判断文件是否可以上传
*
* @param uplaodfilename
* @return
*/
public boolean canUploadCheckBySecid(String uplaodfilename) {
int secid = Util.getIntValue(this.getParameter("secid"), -1);
String paramFileName = this.getFileOriginalFileName(uplaodfilename); //获取参数当中的文件名
if (secid <= 0) {
return FileSuffixCheckUtil.isEnableUpload(paramFileName);
} else {
return FileSuffixCheckUtil.isEnableUploadBySecId(secid, paramFileName);
}
}
/**
* @param fileName 文件名
* @param fieldId 附件字段id
* @param workflowId 流程id
* @return 文件上传后端校验是否通过
*/
public boolean checkFileSuffix(String fileName, int fieldId, int workflowId) {
RecordSet rs1 = new RecordSet();
//查询单个字段设置
String sql1 = "select limittype,limitvalue from workflow_fileupload where fieldid = " + fieldId + " and workflowid =" + workflowId;
//查询默认设置
String sql2 = "select limitvalue from workflow_base where id = " + workflowId;
//查询新表单
String sql3 = "select FIELDHTMLTYPE,TYPE from workflow_billfield where id = " + fieldId;
//查询老表单主表
String sql4 = "select fieldhtmltype,type from workflow_formdict where id = " + fieldId;
//查询老表单明细表
String sql5 = "select fieldhtmltype,type from workflow_formdictdetail where id = " + fieldId;
String limitType = "";//单个字段设置类型
String limitValueField = "";//单个字段设置限制格式
String limitValueDefult = "";//默认限制格式
String fileNameSuffix = FileSuffixCheckUtil.getFileNameSuffix(fileName);//上传的文件名后缀
rs1.executeQuery(sql1);
while (rs1.next()) {
limitType = Util.null2String(rs1.getString("limittype"));
limitValueField = Util.null2String(rs1.getString("limitvalue"));
}
rs1.execute(sql2);
while (rs1.next()) {
limitValueDefult = Util.null2String(rs1.getString("limitvalue"));
}
//新表单
String fieldHtmlTypeNew = "";//新表单字段大类型
String typeNew = "";//新表单字段小类型
rs1.executeQuery(sql3);
while (rs1.next()) {
fieldHtmlTypeNew = Util.null2String(rs1.getString(1));
typeNew = Util.null2String(rs1.getString(2));
}
//校验新表单字段是否为图片,如果是图片,则不校验,直接放行
if ("6".equals(fieldHtmlTypeNew) && "2".equals(typeNew)) {
return true;
}
//老表单主表
String fieldHtmlTypeOld = "";//老表单字段大类型
String typeOld = "";//老表单字段小类型
rs1.execute(sql4);
while (rs1.next()) {
fieldHtmlTypeOld = Util.null2String(rs1.getString(1));
typeOld = Util.null2String(rs1.getString(2));
}
//校验老表单字段是否为图片,如果是图片,则不校验,直接放行
if ("6".equals(fieldHtmlTypeOld) && "2".equals(typeOld)) {
return true;
}
//老表单明细表
String fieldHtmlTypeDetailOld = "";//老表单明细字段大类型
String typeDetailOld = "";//老表单明细字段小类型
rs1.execute(sql5);
while (rs1.next()) {
fieldHtmlTypeDetailOld = Util.null2String(rs1.getString(1));
typeDetailOld = Util.null2String(rs1.getString(2));
}
//校验老表单字段是否为图片,如果是图片,则不校验,直接放行
if ("6".equals(fieldHtmlTypeDetailOld) && "2".equals(typeDetailOld)) {
return true;
}
//如果默认和字段都没有设置格式限制,或者字段选择了格式显示,但是格式限制为空,则直接允许提交
if (("".equals(limitValueField) && "".equals(limitValueDefult)) || ("1".equals(limitType) && "".equals(limitValueField))) {
return true;
}
//先校验单个字段,如果单个字段没有设置格式校验,则校验默认的格式设置
if ("1".equals(limitType)) {
String[] formats = limitValueField.split(",");
return Util.contains(formats, fileNameSuffix);
}
if ("0".equals(limitType)) {
String[] restrictedFormat = limitValueDefult.split(",");
return Util.contains(restrictedFormat, fileNameSuffix);
}
return false;
}
}