文件下载(使用springmvc框架中ResponseEntity对象)

package com.atguigu.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

import javax.servlet.http.HttpSession;

import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class UploadAndDown {
    @RequestMapping("/down")
    public ResponseEntity<byte[]> down(HttpSession session) throws Exception{
        //获取下载文件的路径 (获取tomcat服务器的位置)
        String realPath = session.getServletContext().getRealPath("img");
        String finalPath = realPath+ File.separator +"1.jpg";
        //创建字节输入流
        InputStream in = new FileInputStream(finalPath);
        //available():获取输入流所读取的文件的最大字节数
        byte[] body = new byte[in.available()];
        //把字节读取到数组中
        in.read(body);
        //设置请求头
        MultiValueMap<String, String> headers = new HttpHeaders();
        headers.add("Content-Disposition", "attachment;filename=aaa.jpg");
        //设置响应状态
        HttpStatus statusCode = HttpStatus.OK;
        in.close();

        
        ResponseEntity<byte[]> entity = new ResponseEntity<byte[]>(body, headers, statusCode);
        return entity;
        
    }

}
原文地址:https://www.cnblogs.com/lsk-130602/p/12239046.html