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、