java 上傳 下載檔案工具類
package com.fh.util; import java.io.BufferedInputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import org.apache.commons.io.FileUtils; import org.springframework.web.multipart.MultipartFile; /** * 說明:上傳檔案 * 作者:FH Admin * 官網:fhadmin.cn */ public class FileUpload { /**上傳檔案 * @param file //檔案物件 * @param filePath //上傳路徑 * @param fileName //檔名 * @return 檔名 */ public static String fileUp(MultipartFile file, String filePath, String fileName){ String extName = ""; // 副檔名格式: try { if (file.getOriginalFilename().lastIndexOf(".") >= 0){ extName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); } copyFile(file.getInputStream(), filePath, fileName+extName).replaceAll("-", ""); } catch (IOException e) { System.out.println(e); } return fileName+extName; } /** * 寫檔案到當前目錄的upload目錄中 * @param in * @param fileName * @throws IOException */ public static String copyFile(InputStream in, String dir, String realName) throws IOException { File file = mkdirsmy(dir,realName); FileUtils.copyInputStreamToFile(in, file); in.close(); return realName; } /**判斷路徑是否存在,否:建立此路徑 * @param dir 檔案路徑 * @param realName 檔名 * @throws IOException */ public static File mkdirsmy(String dir, String realName) throws IOException{ File file = new File(dir, realName); if (!file.exists()) { if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } file.createNewFile(); } return file; } /**下載網路圖片上傳到伺服器上 * @param httpUrl 圖片網路地址 * @param filePath 圖片儲存路徑 * @param myFileName 圖片檔名(null時用網路圖片原名) * @return 返回圖片名稱 */ public static String getHtmlPicture(String httpUrl, String filePath , String myFileName) { URL url; //定義URL物件url BufferedInputStream in; //定義輸入位元組緩衝流物件in FileOutputStream file; //定義檔案輸出流物件file try { String fileName = null == myFileName?httpUrl.substring(httpUrl.lastIndexOf("/")).replace("/", ""):myFileName; //圖片檔名(null時用網路圖片原名) url = new URL(httpUrl); //初始化url物件 in = new BufferedInputStream(url.openStream()); //初始化in物件,也就是獲得url位元組流 //file = new FileOutputStream(new File(filePath +"\\"+ fileName)); file = new FileOutputStream(mkdirsmy(filePath,fileName)); int t; while ((t = in.read()) != -1) { file.write(t); } file.close(); in.close(); return fileName; } catch (MalformedURLException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } } package com.fh.util; import java.io.BufferedOutputStream; import java.io.OutputStream; import java.net.URLEncoder; import javax.servlet.http.HttpServletResponse; /** * 說明:下載檔案 * 作者:FH Admin * 官網:fhadmin.cn */ public class FileDownload { /** * @param response * @param filePath //檔案完整路徑(包括檔名和副檔名) * @param fileName //下載後看到的檔名 * @return 檔名 */ public static void fileDownload(final HttpServletResponse response, String filePath, String fileName) throws Exception{ byte[] data = FileUtil.toByteArray2(filePath); fileName = URLEncoder.encode(fileName, "UTF-8"); response.reset(); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); response.addHeader("Content-Length", "" + data.length); response.setContentType("application/octet-stream;charset=UTF-8"); OutputStream outputStream = new BufferedOutputStream(response.getOutputStream()); outputStream.write(data); outputStream.flush(); outputStream.close(); response.flushBuffer(); } }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31558068/viewspace-2860097/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JAVA檔案上傳下載Java
- 檔案下載上傳小工具
- 檔案上傳下載小工具
- 檔案上傳下載
- springboot 檔案上傳下載Spring Boot
- 檔案上傳與下載
- JavaWeb之實現檔案上傳與下載工具JavaWeb
- Java SE 檔案上傳和檔案下載的底層原理Java
- 使用SecureCRT上傳下載檔案Securecrt
- minio檔案上傳與下載
- 檔案的上傳與下載
- SpringMVC檔案上傳下載(單檔案、多檔案)SpringMVC
- Netty接收HTTP檔案上傳及檔案下載NettyHTTP
- spring cloud feign 檔案上傳和檔案下載SpringCloud
- Feign實現檔案上傳下載
- Spring Boot 檔案上傳與下載Spring Boot
- xshell 使用 sftp上傳下載檔案FTP
- springcloud中feign檔案上傳、下載SpringGCCloud
- ServletFileUpload類上傳檔案Servlet
- 檔案上傳/下載後臺程式碼
- SpringMVC實現檔案上傳&下載(2)SpringMVC
- springboot 中檔案的上傳和下載Spring Boot
- Struts2的檔案上傳下載
- xshell安裝上傳下載檔案命令
- 【liunx命令】上傳下載檔案的方法
- Koa2 之檔案上傳下載
- 精講RestTemplate第6篇-檔案上傳下載與大檔案流式下載REST
- 使用Vue+go實現前後端檔案的上傳下載,csv檔案上傳下載可直接照搬VueGo後端
- 基於SpringWeb MultipartFile檔案上傳、下載功能SpringWeb
- 前端實現檔案下載和拖拽上傳前端
- Java Web 檔案上傳JavaWeb
- JAVA檔案下載Java
- 大檔案傳輸解決方案:分片上傳 / 下載限速
- java 檔案處理 工具類Java
- MinIO上傳和下載檔案及檔案完整性校驗.
- Java大檔案上傳、分片上傳、多檔案上傳、斷點續傳、上傳檔案minio、分片上傳minio等解決方案Java斷點
- Python介面自動化——檔案上傳/下載介面Python
- vue實現Excel檔案的上傳與下載VueExcel