springBoot 2.x 读取上传流文件
2018-09-12 本文已影响10人
如风_周
网上有很多上传文件的教程,使用很不舒服,所以写了这读取上传流文件的方法,方法输出为String类型
/**
* 读取流文件
* @return
* @throws IOException
*/
public static String getFIle() throws IOException {
// 读取流文件
FileInputStream fis = new FileInputStream("F:\\test.txt");
// 防止路径乱码 如果utf-8 乱码 改GBK eclipse里创建的txt 用UTF-8,在电脑上自己创建的txt 用GBK
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
// 设置一个接收的String
StringBuffer strBuf = new StringBuffer();
String line = null;
while ((line = br.readLine()) != null) {
strBuf.append(line);
}
String str= strBuf.toString();
br.close();
isr.close();
fis.close();
return str;
}
图片上传功能方法
/**
* 文件上传功能
* @return
*/
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public void uploadImg(HttpServletRequest request, HttpServletResponse response, MultipartFile file)
throws ServletException, IOException {
// 文件名字
System.out.println(file.getOriginalFilename());
InputStream files = file.getInputStream();
FileOutputStream out = new FileOutputStream(new File("E:\\" + file.getOriginalFilename() + ".jpeg"));
// 每次读取的字节长度
int n = 0;
// 存储每次读取的内容
byte[] bb = new byte[1024];
while ((n = files.read(bb)) != -1) {
// 将读取的内容,写入到输出流当中
out.write(bb, 0, n);
}
// 关闭输入输出流
out.close();
files.close();
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
// 处理中文问题
sfu.setHeaderEncoding("UTF-8");
// 限制文件大小
sfu.setSizeMax(1024 * 1024 * 5);
// 输出后路径
String path = "";
// 把文件写到指定路径
path = "E:/" + File.separator;
// 打印文件位置
System.out.println(path);
}