Search in sources :

Example 1 with UploadFile

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());
}
Also used : SysUser(com.hxkj.system.model.SysUser) JsonRender(com.jfinal.render.JsonRender) UploadFile(com.jfinal.upload.UploadFile) SysFile(com.hxkj.system.model.SysFile) SimpleDateFormat(java.text.SimpleDateFormat) UploadFile(com.jfinal.upload.UploadFile) File(java.io.File) SysFile(com.hxkj.system.model.SysFile)

Example 2 with UploadFile

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("保存或重命名文件名失败");
    }
}
Also used : UploadFile(com.jfinal.upload.UploadFile) File(java.io.File)

Example 3 with UploadFile

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);
    }
}
Also used : UploadFile(com.jfinal.upload.UploadFile) ActFormTpl(com.github.qinyou.process.model.ActFormTpl) IOException(java.io.IOException) Date(java.util.Date)

Example 4 with UploadFile

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);
    }
}
Also used : UploadFile(com.jfinal.upload.UploadFile) ActFormTpl(com.github.qinyou.process.model.ActFormTpl) IOException(java.io.IOException) Date(java.util.Date)

Example 5 with UploadFile

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);
}
Also used : UploadFile(com.jfinal.upload.UploadFile) ImportParams(cn.afterturn.easypoi.excel.entity.ImportParams) ExSingleTable(com.github.qinyou.example.model.ExSingleTable) Date(java.util.Date) Before(com.jfinal.aop.Before)

Aggregations

UploadFile (com.jfinal.upload.UploadFile)11 File (java.io.File)4 Date (java.util.Date)4 ImportParams (cn.afterturn.easypoi.excel.entity.ImportParams)2 ActFormTpl (com.github.qinyou.process.model.ActFormTpl)2 Before (com.jfinal.aop.Before)2 IOException (java.io.IOException)2 ExSingleTable (com.github.qinyou.example.model.ExSingleTable)1 SysSetting (com.github.qinyou.system.model.SysSetting)1 SysFile (com.hxkj.system.model.SysFile)1 SysUser (com.hxkj.system.model.SysUser)1 Ret (com.jfinal.kit.Ret)1 JsonRender (com.jfinal.render.JsonRender)1 FileInputStream (java.io.FileInputStream)1 InputStream (java.io.InputStream)1 SimpleDateFormat (java.text.SimpleDateFormat)1 ZipInputStream (java.util.zip.ZipInputStream)1