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、

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM