Java创建文件夹、创建文件、上传文件,下载文件

1、创建文件夹

/**
 * 判断文件夹是否存在
 * @param myPath
 */
public static void judeDirExists(File myPath) {
    if (!myPath.exists()) {
        myPath.mkdirs();//多级文件夹目录
        //myPpath.mkdir();//单级文件夹目录  
        System.out.println("创建文件夹路径为:"+ myPath.getPath());
    }
}

2、修改文件夹名称

 /**
     * 通过文件路径直接修改文件名
     * @param filePath 需要修改的文件的完整路径
     * @param newFileName 需要修改的文件的名称
     * @return
     */
    private static String modifyFileName(String filePath, String newFileName) {
        File f = new File(filePath);
        if (!f.exists()) { // 判断原文件是否存在
            return null;
        }
        newFileName = newFileName.trim();
        if ("".equals(newFileName)) // 文件名不能为空
            return null;
        String newFilePath = null;
        if (f.isDirectory()) { // 判断是否为文件夹
            newFilePath = filePath.substring(0, filePath.lastIndexOf("/")) + "/" + newFileName;
        } else {
            newFilePath = filePath.substring(0, filePath.lastIndexOf("/"))+ "/"  + newFileName + filePath.substring(filePath.lastIndexOf("."));
        }
        File nf = new File(newFilePath);
        if (!f.exists()) { // 判断需要修改为的文件是否存在(防止文件名冲突)
            return null;
        }
        try {
            f.renameTo(nf); // 修改文件名
        } catch(Exception err) {
            err.printStackTrace();
            return null;
        }

        return newFilePath;
    }

3、文件附件形式下载

/**
     * 下载文档文件
      * @param request
     * @param response
     * @param file_name
     * @throws IOException
     */
    @RequestMapping(value = "/download_dex_privacy.do/{file_name}")
    public void downloadDexDoc(@PathVariable("file_name") String file_name,HttpServletRequest request, HttpServletResponse response) throws IOException {
        String path=request.getServletContext().getRealPath("/WEB-INF/classes/dex_doc");
        System.out.println(path);
        File file=new File(path+"/"+file_name);
        // 获取输入流
        InputStream bis = new BufferedInputStream(new FileInputStream(file));
        // 假如以中文名下载的话
        // 转码,免得文件名中文乱码
        file_name = URLEncoder.encode(file_name, "UTF-8");
        // 设置文件下载头
        response.addHeader("Content-Disposition", "attachment;filename=" + file_name);
        // 1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
        response.setContentType("multipart/form-data");
        BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
        int len = 0;
        while ((len = bis.read()) != -1) {
            out.write(len);
            out.flush();
        }
        out.close();
    }

 

4、上传文件

/**
     * 添用户收款方式信息
     * @param receipt
     * @return
     */
    @RequestMapping(value = "add.json")
    @ResponseBody
    public ReturnReceipt addReceipt(@RequestParam("file") MultipartFile file, String fundsPassword, Receipt receipt,HttpServletRequest request, HttpServletResponse response) {
        BasePage_Model pageModel=SetDefaultPage(request);
        ReturnReceipt returnReceipt=new ReturnReceipt();
        if(pageModel.user_cookie_model.phone==null){
            try {
                response.sendRedirect("/login");
                return null;
            } catch (IOException e) {
                logger.error("ReceiptController==>addReceipt==>未登录跳转异常==>"+e.getMessage());
            }
        }
        if (file.isEmpty()) {
            returnReceipt.status=ReturnReceipt.status_102;
            returnReceipt.message="上传失败,请选择文件";
        }else{
            ReceiptMode receiptMode=new ReceiptMode();
            receiptMode.id=receipt.receiptModeId;
            ReturnReceiptMode returnReceiptMode=receiptModeDao.queryReceiptModeById(receiptMode);
            if(returnReceiptMode.status==ReturnReceiptMode.status_100){
                ReceiptMode receipt_mode=returnReceiptMode.receipt_mode;
                String fileName= pageModel.user_cookie_model.phone+DateUtil.getTimeStamp();
                boolean file_state=uploadFile(file,receipt_mode.name,fileName);
                if(file_state){
                    Receipt _receipt=new Receipt();
                    _receipt.phone=pageModel.user_cookie_model.phone;
                    _receipt.receiptModeId=receipt.receiptModeId;
                    _receipt.receiptInfo=receipt.receiptInfo+","+fileName;
                    ReturnReceipt _returnReceipt=receiptDao.addReceipt(_receipt);
                    returnReceipt.status=_returnReceipt.status;
                    returnReceipt.message=_returnReceipt.message;
                }else{
                    returnReceipt.status=ReturnReceipt.status_103;
                    returnReceipt.message="添加收款方式非法操作";
                }
            }else{
                returnReceipt.status=ReturnReceipt.status_103;
                returnReceipt.message="添加收款方式非法操作";
            }
        }

        return returnReceipt;
    }

public boolean uploadFile(MultipartFile file,String receiptName,String fileName){
        String filePath = ConfigDefault.receipt_mode_url + "/" + receiptName + "/";
        File dir = new File(filePath);
        if (!dir.exists()) {
            dir.mkdirs();
        }
        File dest = new File(filePath + fileName + ".png");
        try {
            file.transferTo(dest);
           return true;
        } catch (IOException e) {
            logger.error("ReceiptController==>uploadFile==>IOException==>" + e.getMessage());
            return false;
        }
    }

 

 

5、

 

posted @ 2019-03-14 10:15  iviv  阅读(4646)  评论(0编辑  收藏  举报