use of com.jfinal.upload.UploadFile in project my_curd by qinyou.
the class SysFileController method addAction.
/**
* 增加
* 文件过大 没有良好的提示性信息
*/
public void addAction() throws IOException {
Map<String, Object> result = new HashMap<String, Object>();
HashMap<String, String> extMap = new HashMap<String, String>();
extMap.put("image", prop.get("imageType"));
extMap.put("media", prop.get("mediaType"));
extMap.put("file", prop.get("fileType"));
String limitFileTypes = extMap.get("image") + "," + extMap.get("media") + "," + extMap.get("file");
UploadFile uploadFile = getFile("file");
if (uploadFile != null) {
// 文件原名
String orginFilename = uploadFile.getOriginalFileName();
// 文件后缀
String fileSuf = orginFilename.substring(orginFilename.lastIndexOf(".") + 1).toLowerCase();
if (!Arrays.<String>asList(limitFileTypes.split(",")).contains(fileSuf)) {
result.put("error", 1);
result.put("message", "只允许后缀为:<br/>" + extMap.get("image") + "<br/>" + extMap.get("media") + "<br/>" + extMap.get("file") + "<br/>格式文件");
uploadFile.getFile().delete();
} else {
// 文件量大、上传频繁 这种分发方式并不合适(文件copy后删除原文件占资源,按类型分类可能导致某个目录下文件量超多)
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileSuf;
String pre;
if (Arrays.asList(extMap.get("image").split(",")).contains(fileSuf)) {
pre = prop.get("imagePath");
} else if (Arrays.asList(extMap.get("media").split(",")).contains(fileSuf)) {
pre = prop.get("mediaPath");
} else if (Arrays.asList(extMap.get("file").split(",")).contains(fileSuf)) {
pre = prop.get("filePath");
} else {
pre = "upload/unlikeFile";
}
String relativePath = pre + "/" + newFileName;
pre = PathKit.getWebRootPath() + '/' + pre;
newFileName = pre + "/" + newFileName;
File savefile = new File(newFileName);
FileUtils.copyFile(uploadFile.getFile(), savefile);
if (uploadFile.getFile().exists()) {
uploadFile.getFile().delete();
}
SysFile sysFile = new SysFile();
SysUser sysUser = getSessionUser();
sysFile.setUserId(sysUser.getId());
sysFile.setOriginalFilename(orginFilename);
sysFile.setPath(relativePath);
sysFile.setRemark(getPara("remark"));
sysFile.setType(fileSuf);
sysFile.setCreateTime(new Date());
boolean saveFlag = sysFile.save();
if (!saveFlag) {
result.put("error", 1);
result.put("message", "数据存储失败");
savefile.delete();
} else {
result.put("error", 0);
}
}
} else {
result.put("error", 1);
result.put("message", "请选择文件");
}
render(new JsonRender(JSON.toJSONString(result)).forIE());
}
use of com.jfinal.upload.UploadFile in project fruit-manage by liuzhaozhao.
the class CommonController method renameFile.
/**
* 重命名文件
* 避免出现重名的文件
* @param uploadFile
* @param request
* @return
*/
public static String renameFile(UploadFile uploadFile, HttpServletRequest request) {
File file = uploadFile.getFile();
String name = file.getName();
String saveFileName = "file_" + UUID.randomUUID().toString().replace("-", "") + name.substring(name.lastIndexOf("."));
File saveFile = new File(file.getParent() + File.separator + saveFileName);
if (file.renameTo(saveFile)) {
return saveFileName;
} else {
throw new RuntimeException("保存或重命名文件名失败");
}
}
use of com.jfinal.upload.UploadFile in project my_curd by qinyou.
the class ActFormTplController method addAction.
/**
* 新增 action
*/
public void addAction() {
UploadFile file = getFile();
if (file == null) {
renderFail("模板文件不可为空");
return;
}
String extension = FilenameUtils.getExtension(file.getFileName());
if (!"html".equalsIgnoreCase(extension)) {
renderFail("模板文件必须是html文件");
return;
}
String template = null;
try {
template = FileUtils.readFileToString(file.getFile(), "utf-8");
FileUtils.deleteFile(file.getFile());
} catch (IOException e) {
log.error(e.getMessage(), e);
renderFile("模板文件读取失败");
return;
}
ActFormTpl actFormTpl = getBean(ActFormTpl.class, "");
actFormTpl.setTemplate(template);
ActFormTpl latestVersion = ActFormTpl.dao.findLatestByKey(actFormTpl.getFormKey());
int version = 1;
if (latestVersion != null) {
version = latestVersion.getFormVersion() + 1;
}
actFormTpl.setId(actFormTpl.getFormKey() + ":" + version).setFormVersion(version).setCreater(WebUtils.getSessionUsername(this)).setCreateTime(new Date());
if (actFormTpl.save()) {
renderSuccess(ADD_SUCCESS);
} else {
renderFail(ADD_FAIL);
}
}
use of com.jfinal.upload.UploadFile in project my_curd by qinyou.
the class ActFormTplController method updateAction.
/**
* 修改 action
*/
public void updateAction() {
UploadFile file = getFile();
String template = null;
if (file != null) {
String extension = FilenameUtils.getExtension(file.getFileName());
if (!"html".equalsIgnoreCase(extension)) {
renderFail("模板文件必须是html文件");
return;
}
try {
template = FileUtils.readFileToString(file.getFile(), "utf-8");
FileUtils.deleteFile(file.getFile());
} catch (IOException e) {
log.error(e.getMessage(), e);
renderFile("模板文件读取失败");
return;
}
}
ActFormTpl actFormTpl = ActFormTpl.dao.findById(get("id"));
if (actFormTpl == null) {
renderFile("ID参数错误");
return;
}
// formKey,formVersion 不可更新
if (template != null) {
actFormTpl.setTemplate(template);
}
actFormTpl.setState(get("state")).setRemark(get("remark")).setPlugins(get("plugins")).setUpdater(WebUtils.getSessionUsername(this)).setUpdateTime(new Date());
if (actFormTpl.update()) {
renderSuccess(UPDATE_SUCCESS);
} else {
renderFail(UPDATE_FAIL);
}
}
use of com.jfinal.upload.UploadFile in project my_curd by qinyou.
the class ExSingleTableController method importExcel.
/**
* 导入excel
*/
@Before(Tx.class)
public void importExcel() {
UploadFile uploadFile = getFile();
if (uploadFile == null) {
renderFail("上传文件不可为空");
return;
}
if (!FilenameUtils.getExtension(uploadFile.getFileName()).equals("xls")) {
FileUtils.deleteFile(uploadFile.getFile());
renderFail("上传文件后缀必须是xls");
return;
}
List<ExSingleTable> list;
try {
ImportParams params = new ImportParams();
params.setTitleRows(1);
params.setHeadRows(1);
list = ExcelImportUtil.importExcel(uploadFile.getFile(), ExSingleTable.class, params);
} catch (Exception e) {
log.error(e.getMessage(), e);
FileUtils.deleteFile(uploadFile.getFile());
renderFail("模板文件格式错误");
return;
}
for (ExSingleTable exSingleTable : list) {
System.out.println(exSingleTable);
System.out.println();
exSingleTable.setId(IdUtils.id()).setCreater(WebUtils.getSessionUsername(this)).setCreateTime(new Date()).save();
}
FileUtils.deleteFile(uploadFile.getFile());
renderSuccess(IMPORT_SUCCESS);
}
Aggregations