java文件上传

来源:互联网 发布:java 工具类打包jar包 编辑:程序博客网 时间:2024/06/15 06:01

1、上传临时文件到服务器目录

public static List<String> uploadTempFile(HttpServletRequest request) {        List<String> fileNames = Lists.newArrayList();        Enumeration<String> params = request.getParameterNames();        String pathDir = getUploadDir(request);        File dir = new File(pathDir);        if (!dir.exists()) {            dir.mkdirs();        }        while (params.hasMoreElements()) {            String key = params.nextElement();            String fileStr = request.getParameter(key);            if (fileStr != null && !"".equals(fileStr)) {                int index = fileStr.indexOf("base64");                if (index > 0) {                    try {                        String fileName = UUID.randomUUID().toString();                        String preStr = fileStr.substring(0, index + 7);                        String prefix = preStr.substring(preStr.indexOf("/") + 1, preStr.indexOf(";")).toLowerCase();                        fileStr = fileStr.substring(fileStr.indexOf(",") + 1);                        BASE64Decoder decoder = new BASE64Decoder();                        byte[] bb = decoder.decodeBuffer(fileStr);                        for (int j = 0; j < bb.length; ++j) {                            if (bb[j] < 0) {// 调整异常数据                                bb[j] += 256;                            }                        }                        String distPath = pathDir + fileName + "." + prefix;                        OutputStream out = new FileOutputStream(distPath);                        out.write(bb);                        out.flush();                        out.close();                        fileNames.add(fileName + "." + prefix);                    } catch (Exception e) {                        log.error("上传文件异常:", e);                    }                }            }        }        return fileNames;    }

2、获取上传文件临时目录

public static String getUploadDir(HttpServletRequest request) {        return request.getServletContext().getRealPath(uploadFileDir) + File.separator;}