单个上传页面
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/context/mytags.jsp"%>
<!DOCTYPE html>
<html>
<head>
<title>文件列表</title>
<t:base type="jquery,easyui,tools"></t:base>
</head>
<body style="overflow-y: hidden" scroll="no">
<t:formvalid formid="formobj" layout="div" dialog="true" refresh="true" beforeSubmit="upload">
<fieldset class="step">
<div class="form">
<t:upload name="fiels" buttonText="上传文件" uploader="bidFilesInfoController.do?fileDeal&isup=1&type=1&fileId=${fileId} "
onUploadSuccess="uploadSuccess" callback="uploadCallback" extend="" id="file_upload" ></t:upload>
</div>
<div class="form" id="filediv" style="height: 50px">
<div class="row" style="margin-left:20px;"></div>
</div>
</fieldset>
</t:formvalid>
<script type="text/javascript">
var serverMsg = "";
var responseData;
function uploadSuccess(response,file){
responseData = response;
$("#"+file.id).find(".sdata").text(' - Complete');
}
function uploadCallback(){
var data = responseData;
var win = frameElement.api.opener;
if(data.success==true){
win.reloadDatagrid();
win.tip(data.msg);
frameElement.api.close();
}else{
if(data.responseText==''||data.responseText==undefined){
$.messager.alert('错误', data.msg);
$.Hidemsg();
}else{
try{
var emsg = data.responseText.substring(data.responseText.indexOf('错误描述'),
data.responseText.indexOf('错误信息'));
$.messager.alert('错误',emsg);
$.Hidemsg();
}catch(ex){
$.messager.alert('错误',data.responseText+"");
$.Hidemsg();
}
}
return false;
}
}
</script>
</body>
</html>
多个上传页面
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/context/mytags.jsp"%>
<!DOCTYPE html>
<html>
<head>
<title>文件列表</title>
<t:base type="jquery,easyui,tools"></t:base>
</head>
<body style="overflow-y: hidden" scroll="no">
<t:formvalid formid="formobj" layout="div" dialog="true" refresh="true" beforeSubmit="upload" action="multiUploadController.do?doAdd">
<table style="width: 600px;" cellpadding="0" cellspacing="1" class="formtable">
<tr>
<td align="center">
<label class="Validform_label">
模板文件:
</label>
</td>
<td class="value">
<div class="form">
<t:upload name="fiels" buttonText="上传文件" uploader="bidFilesInfoController.do?fileDeal2&isup=1&type=2&fileId=${fileId}&uuid=${uuid} "
onUploadSuccess="uploadSuccess" callback="uploadCallback" extend="" id="file_upload" queueID="filediv" outhtml="false"></t:upload>
</div>
<div class="form" id="filediv" style="height: 150px">
<div class="row" style="margin-left:20px;"></div>
</div>
</td>
</tr>
<tr>
<td align="center">
<label class="Validform_label">
模板效果:
</label>
</td>
<td class="value">
<div class="form">
<t:upload name="fiels2" buttonText="上传文件" uploader="bidFilesInfoController.do?fileDeal2&isup=1&type=3&fileId=${fileId}&uuid=${uuid} "
onUploadSuccess="uploadSuccess" callback="uploadCallback" extend="*.jpg;*.jpeg;*.png;*.gif;*.bmp;*.ico;*.tif" id="file_upload2" queueID="filediv2" outhtml="true"></t:upload>
</div>
<div class="form" id="filediv2" style="height: 150px">
<div class="row" style="margin-left:20px;"></div>
</div>
</td>
</tr>
</table>
</t:formvalid>
<script type="text/javascript">
var serverMsg = "";
var responseData;
function uploadSuccess(response,file){
responseData = response;
$("#"+file.id).find(".sdata").text(' - Complete');
}
function uploadCallback(){
var data = responseData;
var win = frameElement.api.opener;
if(data.success==true){
win.reloadDatagrid();
win.tip(data.msg);
frameElement.api.close();
}else{
if(data.responseText==''||data.responseText==undefined){
$.messager.alert('错误', data.msg);
$.Hidemsg();
}else{
try{
var emsg = data.responseText.substring(data.responseText.indexOf('错误描述'),
data.responseText.indexOf('错误信息'));
$.messager.alert('错误',emsg);
$.Hidemsg();
}catch(ex){
$.messager.alert('错误',data.responseText+"");
$.Hidemsg();
}
}
return false;
}
}
</script>
</body>
</html>
处理方法
/**
* WebUploader
* 文件上传处理/删除处理
* @throws Exception
*/
@RequestMapping(params = "fileDeal", method = RequestMethod.POST)
@ResponseBody
public AjaxJson fileDeal(HttpServletRequest request, HttpServletResponse response) throws Exception {
AjaxJson j = new AjaxJson();
String msg="";
String type=request.getParameter("type");
String upFlag=request.getParameter("isup");//上传标识
String delFlag=request.getParameter("isdel");//删除标识
String swfTransform=request.getParameter("swfTransform");//是否将文件转换成swf
// String ctxPath = request.getSession().getServletContext().getRealPath("");
String ctxPath=ResourceUtil.getConfigByName("webUploadpath");//设置为D://upFiles,实际项目应因事制宜
//默认上传文件是否转换为swf,实现在线预览功能开关
String globalSwfTransformFlag = ResourceUtil.getConfigByName("swf.transform.flag");
String fileId=request.getParameter("fileId");//上传文件id/项目id也当作文件id
logger.debug("----ctxPath-----"+ctxPath);
try {
//如果是上传操作
if("1".equals(upFlag) && oConvertUtils.isNotEmpty(fileId)){
String fileName = null;
// String bizPath=StoreUploadFilePathEnum.getPath(bizType);//根据业务id获取名称判断上传路径
String bizPath="upload"+File.separator+"files";//上传路径
String nowday=new SimpleDateFormat("yyyyMMdd").format(new Date());
logger.debug("---nowday----"+nowday);
File file = new File(ctxPath+File.separator+bizPath+File.separator+nowday);
if (!file.exists()) {
file.mkdirs();// 创建文件根目录
}
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile mf=multipartRequest.getFile("file");// 获取上传文件对象
String orgName = mf.getOriginalFilename();// 获取文件名
fileName = orgName.substring(0,orgName.lastIndexOf("."))+"_"+System.currentTimeMillis()+orgName.substring(orgName.indexOf("."));
String savePath = file.getPath() + File.separator + fileName;
String fileExt = FileUtils.getExtend(fileName);
if("txt".equals(fileExt)){
FileUtils.uploadTxtFile(mf, savePath);
}else{
File savefile = new File(savePath);
FileCopyUtils.copy(mf.getBytes(), savefile);
}
String dbpath=bizPath+File.separator+nowday+File.separator+fileName;
logger.debug("---dbpath----"+dbpath);
if(dbpath.contains("\\")){
dbpath = dbpath.replace("\\","/");
}
j.setObj(dbpath);
//1、将文件路径赋值给obj,前台可获取之,随表单提交,然后数据库中存储该路径
//2、这里用的是AjaxJson对象,开发者可自定义返回对象,但是用t标签的时候路径属性名需为 obj或 filePath 或自己在标签内指定若在标签内指定则action返回路径的名称应保持一致
if("true".equals(globalSwfTransformFlag) && "true".equals(swfTransform)){
//转换swf
SwfToolsUtil.convert2SWF(savePath);
}
TSUser user = ResourceUtil.getSessionUser();//新版本
String username=user.getRealName();
String uid = UUID.randomUUID().toString();
//新增表
BidFilesInfoEntity filesInfo = new BidFilesInfoEntity();
filesInfo.setId(uid);
filesInfo.setType(type);
filesInfo.setFileId(fileId);
filesInfo.setFileName(orgName);
filesInfo.setBasePath(dbpath);
filesInfo.setRealPath(savePath);
filesInfo.setCreateDate(new Date());
filesInfo.setCreatePerson(username);
// insertEntity(filesInfo);
systemService.save(filesInfo);
msg="上传成功";
j.setMsg(msg);
//如果是删除操作
}else if("1".equals(delFlag)){
String delpath=request.getParameter("path");
// String delpath=ctxPath+File.separator+path;
File fileDelete = new File(delpath);
if (!fileDelete.exists() || !fileDelete.isFile()) {
msg="警告: " + delpath + "不存在!";
logger.info(msg);
j.setSuccess(true);//不存在前台也给他删除
}else{
if(fileDelete.delete()){
msg="--------成功删除文件---------"+delpath;
logger.info(msg);
//删除swf/pdf文件
if("true".equals(globalSwfTransformFlag) && "true".equals(swfTransform)){
try {
String swfPath = FileUtils.getSwfPath(delpath);
new File(swfPath).delete();
logger.info("--------成功删除swf文件---------"+swfPath);
if(!delpath.endsWith("pdf")){
String pdfPath = delpath.substring(0, delpath.lastIndexOf(".")+1)+"pdf";
new File(pdfPath).delete();
logger.info("--------成功删除pdf文件---------"+pdfPath);
}
} catch (Exception e) {
logger.info("swf文件ORpdf文件未删除成功");
}
}
}else{
j.setSuccess(false);
msg="没删除成功--jdk的问题还是你文件的问题请重新试试";
logger.info(msg);
}
}
}else{
throw new BusinessException("没有传参指定上传还是删除操作!");
}
} catch (IOException e) {
j.setSuccess(false);
logger.info(e.getMessage());
}catch (BusinessException b) {
j.setSuccess(false);
logger.info(b.getMessage());
}
j.setMsg(msg);
return j;
}