当前位置 : 主页 > 手机开发 > harmonyos >

Springboot项目文件上传与下载的实现

来源:互联网 收集:自由互联 发布时间:2023-08-25
骑士李四记录 上传下载思路 1.接口处对文件的接收,如果参数就传一个文件,那简单就用 @RequestParam("fileName") MultipartFile file 如果参数除了文件还有其他参数,组成的对象,怎么接收呢


骑士李四记录

上传下载思路

1.接口处对文件的接收,如果参数就传一个文件,那简单就用

@RequestParam("fileName") MultipartFile file

如果参数除了文件还有其他参数,组成的对象,怎么接收呢,本id亲测用用这个注解就可以接受

@ModelAttribute("formData") Object object

2.对文件怎么上传,如果上传文件服务器,那就用你对应服务器的接口,去上传就ok,注意参数要求

MultipartFile file = objectgetFile();

3.下载,从服务器上下载,得到一个InputOutStream流,怎么通过浏览器下载下来,那就要一个个的读,然后写到输出流,通过浏览器下载。

下载代码

上传简单,这块写一下下载代码,主要练习一下流的操作,方便以后用,

//接口
public ResponseAbc<HttpServletResponse> downLoad(String fileName, HttpServletResponse response) {
     try {
            response.reset();
            //attachment;fileName 不能乱修改,
            response.setHeader("content-disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8"));
            response.setContentType("application/force-download");
            ossClient.downLoad(response.getOutputStream());
        } catch (Exception e) {
            logger.error("downLoad fail ", e);
            return new ResponseAbc<>(HttpStatus.INTERNAL_SERVER_ERROR);
        }
        return new ResponseAbc<>(response,HttpStatus.OK);
    }
}
//下载方法
public void downLoad(ServletOutputStream out) throws Exception{
	 InputStream inputStream = null;
	 byte[] bytes = null;
	 try {
		//服务器获取流的方式,代码不便写出来,这里只写获取到之后怎么处理文件流
	     inputStream = object.getObjectContent();
	     bytes = new byte[inputStream.available()];
	     int i = inputStream.read(bytes);
	     while (i != -1) {
	         out.write(bytes, 0, i);
	         i = inputStream.read(bytes);
	     }
	 }catch (Exception e){
	     logger.info("downLoadFile is fail:{}",e);
	 }finally {
	     inputStream.close(); //先关输入流
	     out.close(); //再关输出流
	     out.flush(); //刷新缓存
	 }
}

网络上有位朋友写的比较全面,我这里只记录一些思路。
网友:https://www.jianshu.com/p/be1af489551c


上一篇:JAVA实现让程序等待一段时间的方法
下一篇:没有了
网友评论