jfinal 文件上传下载

来源:互联网 发布:爱奇艺出品的网络剧 编辑:程序博客网 时间:2024/06/07 09:44
import com.alibaba.fastjson.JSONObject;import com.jfinal.core.Controller;import com.jfinal.ext.kit.ZipUtil;import com.jfinal.kit.PathKit;import com.jfinal.upload.UploadFile; import java.io.*;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Collections;import java.util.Date;import java.util.List; public class FileController extends Controller{    public void upload() {        String path = new SimpleDateFormat("yyyy/MM/dd").format(new Date());        UploadFile file = getFile("imgFile", PathKit.getWebRootPath() + "/temp");        File source = file.getFile();        String fileName = file.getFileName();        String extension = fileName.substring(fileName.lastIndexOf("."));        String prefix;        if(".png".equals(extension) || ".jpg".equals(extension) || ".gif".equals(extension)){            prefix = "img";            fileName = generateWord() + extension;        }else{            prefix = "file";        }        JSONObject json = new JSONObject();        try {            FileInputStream fis = new FileInputStream(source);            File targetDir = new File(PathKit.getWebRootPath() + "/" + prefix + "/u/"                    + path);            if (!targetDir.exists()) {                targetDir.mkdirs();            }            File target = new File(targetDir, fileName);            if (!target.exists()) {                target.createNewFile();            }            FileOutputStream fos = new FileOutputStream(target);            byte[] bts = new byte[300];            while (fis.read(bts, 0, 300) != -1) {                fos.write(bts, 0, 300);            }            fos.close();            fis.close();            json.put("error", 0);            json.put("url", "/" + prefix + "/u/" + path + "/" + fileName);            source.delete();        } catch (FileNotFoundException e) {            json.put("error", 1);            json.put("message", "上传出现错误,请稍后再上传");        } catch (IOException e) {            json.put("error", 1);            json.put("message", "文件写入服务器出现错误,请稍后再上传");        }        renderJson(json.toJSONString());    }     public void download(){        String path = getPara(0);        String img = PathKit.getWebRootPath() + "/img/u/" + path.replaceAll("_", "/");        ZipUtil.zip(img, PathKit.getWebRootPath() + "/img/temp/" + path);        renderFile("/img/temp/" + path + ".zip");    }     private String generateWord() {        String[] beforeShuffle = new String[] { "2", "3", "4", "5", "6", "7",                "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J",                "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",                "W", "X", "Y", "Z" };        List<String> list = Arrays.asList(beforeShuffle);        Collections.shuffle(list);        StringBuilder sb = new StringBuilder();        for (int i = 0; i < list.size(); i++) {            sb.append(list.get(i));        }        String afterShuffle = sb.toString();        String result = afterShuffle.substring(5, 9);        return result;    }

原文地址:http://www.oschina.net/code/snippet_2255303_43121
0 0