【SSM】AppFileUtils
时间:2022-03-13 20:35
11
package com.kikyo.sys.utils; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.net.URLEncoder; import java.util.Properties; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.FileUtils; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; public class AppFileUtils { /** * 得到文件上传的路径 */ public static String PATH = "E:/upload/"; static { InputStream stream = AppFileUtils.class.getClassLoader().getResourceAsStream("config/file.properties"); Properties properties = new Properties(); try { properties.load(stream); PATH = properties.getProperty("path"); } catch (IOException e) { e.printStackTrace(); } } /** * 文件下载 * * @param response * @param path * @param oldName * @return */ public static ResponseEntity<Object> downloadFile(HttpServletResponse response, String path, String oldName) { //4,使用绝对路径+相对路径去找到文件对象 File file = new File(AppFileUtils.PATH, path); //5,判断文件是否存在 if (file.exists()) { try { try { //如果名字有中文 要处理编码 oldName = URLEncoder.encode(oldName, "UTF-8"); } catch (Exception e) { e.printStackTrace(); } //把file转成一个bytes byte[] bytes = FileUtils.readFileToByteArray(file); HttpHeaders header = new HttpHeaders(); //封装响应内容类型(APPLICATION_OCTET_STREAM 响应的内容不限定) header.setContentType(MediaType.APPLICATION_OCTET_STREAM); //设置下载的文件的名称 header.setContentDispositionFormData("attachment", oldName); //创建ResponseEntity对象 ResponseEntity<Object> entity = new ResponseEntity<Object>(bytes, header, HttpStatus.CREATED); return entity; } catch (Exception e) { e.printStackTrace(); } return null; } else { PrintWriter out; try { out = response.getWriter(); out.write("文件不存在"); out.flush(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } } /** * 根据相对路径删除硬盘上文件 * * @param path2 */ public static void deleteFileUsePath(String path) { String realPath = PATH + path; //根据文件 File file = new File(realPath); if (file.exists()) { file.delete(); } } }
相关推荐
- Android系统编程入门系列之界面Activity交互响应
- 新型横向移动工具原理分析、代码分析、优缺点以及检测方案
- uni-app滚动视图容器(scroll-view)之监听上拉事件
- uniapp h5,app两端复制文本
- Android系统编程入门系列之界面Activity响应丝滑的传统动画
- 【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
- 诺基亚短信生成!太好玩了
- iOS 跳转App Store进行评分
- 开发一个即时通讯App
- 关闭苹果IOS app自动更新
电脑软件
本类排行
- 1关闭苹果IOS app自动更新
- 2iOS 跳转App Store进行评分
- 3诺基亚短信生成!太好玩了
- 4Android系统编程入门系列之界面Activity响应丝滑的传统动画
- 5uniapp h5,app两端复制文本
- 6uni-app滚动视图容器(scroll-view)之监听上拉事件
- 7新型横向移动工具原理分析、代码分析、优缺点以及检测方案
- 8Android系统编程入门系列之界面Activity交互响应
- 9开发一个即时通讯App
- 10【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn