package com.censoft.zzportal.util;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.jsp.PageContext;
import com.censoft.common.base.Base;
import com.censoft.common.base.Pub;
import com.censoft.common.config.DefaultConfig;
import com.censoft.common.util.RandomGUID;
import com.jspsmart.upload.SmartUpload;
public class UploadUtil extends Base
{
SmartUpload smartUpload = new SmartUpload();
private String uploadPath;
private Map uploadFiles;
Pub pub = new Pub();
/**
* 初始化参数
*
* @param pageContext
* @return
*/
public boolean initParam(PageContext pageContext)
{
String fileSizeStr = "";
String allowedFileTypeStr = "";
try
{
smartUpload.initialize(pageContext);
this.uploadPath = DefaultConfig.getConfigProperty("upload_file_path");
fileSizeStr = DefaultConfig.getConfigProperty("upload_file_max_size");
allowedFileTypeStr = DefaultConfig.getConfigProperty("upload_allowed_file_type");
int fileSizeLimit = Integer.parseInt(fileSizeStr);
smartUpload.setMaxFileSize(fileSizeLimit*1024);
smartUpload.setAllowedFilesList(allowedFileTypeStr);
smartUpload.upload();
}
catch(SecurityException e)
{
if(e.getMessage().contains("1010"))
{
this.setMsg("上传文件失败:允许上传文件的类型:"+ allowedFileTypeStr + ",错误信息:" + e.getMessage());
}
else if(e.getMessage().contains("1105"))
{
this.setMsg("上传文件失败:文件大小不能超过"+ fileSizeStr +"M" + ",错误信息:" + e.getMessage());
}
else
{
this.setMsg(e.getMessage());
}
return false;
}
catch (Exception e)
{
this.setMsg("初始化上传组件参数失败:" + e.getMessage());
e.printStackTrace();
return false;
}
return true;
}
/**
* 上传文件,上传成功后将相对路径和文件名放在map中
*
* @param type
* 上传文件的的类型:用户头像,企业logo,图片
* @return true: 成功,false:失败
*/
public boolean uploadFile(String type)
{
Map map = new HashMap();
try
{
for (int i = 0; i < smartUpload.getFiles().getCount(); i++)
{
com.jspsmart.upload.File file = smartUpload.getFiles().getFile(i);
String orderPath="";
if (pub.trimNull(file.getFilePathName()).trim().equals(""))
{
continue;
}
String dbPath ="";
if(!"".equals(type))//传递类型,以类型名称作为目录进行创建
{
dbPath= File.separator + type + File.separator + this.getCurrentYear() + File.separator + this.getCurrentMonth() + File.separator;
}else//没有传递类型,读取临时文件路径
{
dbPath=File.separator + "tmp"+ File.separator ;
}
orderPath = uploadPath + dbPath;
File orderDir = new File(orderPath);
if (!orderDir.exists())
{
if (!orderDir.mkdirs())
{
this.setMsg("创建文件夹[" + orderPath + "]失败...");
return false;
}
}
String newFileName = new RandomGUID().valueAfterMD5 + "." + file.getFileExt();
file.saveAs(orderPath + newFileName);
map.put(dbPath + newFileName, file.getFileName());
}
this.setUploadFiles(map);
} catch (Exception e)
{
this.setMsg("上传失败:" + e.getMessage());
e.printStackTrace();
return false;
}
return true;
}
public String getParameter(String str)
{
return smartUpload.getRequest().getParameter(str);
}
public Map getUploadFiles()
{
return uploadFiles;
}
private void setUploadFiles(Map uploadFiles)
{
this.uploadFiles = uploadFiles;
}
public String getCurrentYear()
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
return sdf.format(new Date());
}
public String getCurrentMonth()
{
SimpleDateFormat sdf = new SimpleDateFormat("MM");
return sdf.format(new Date());
}
}
ddxg258
- 粉丝: 6
- 资源: 6
最新资源
- TH2024003基于ssm143校园一卡通系统软件的设计与实现+jsp.zip
- nuget 库官方下载包,可使用解压文件打开解压使用
- 谷歌股票数据集,google股票数据集,Alphabet股份数据集(2004-2024)
- 富芮坤FR8003作为主机连接FR8003抓包文件20241223-135206.pcapng
- 台球检测11-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- uniapp-小程序-vue
- 计算机接口实验报告.zip
- 特斯拉股票数据集,特斯拉历史股票价格数据
- 极验w参数加密JS算法
- 这是一个好玩的整人代码:)
- QT实现QGraphicsView绘图实现边框动画,实现点在QPainterPath路径上移动动画效果的示例项目源码
- VueWarn解决办法.md
- 台球检测38-YOLO(v5至v11)、COCO、CreateML、TFRecord、VOC数据集合集.rar
- NSFileHandleOperationException如何解决.md
- 按键显示系统考试3.3试题
- GeneratorExit.md
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页