解释一下传输数据,请求头,状态码有什么作用

@RequestMapping("/download2")
    public ResponseEntity<byte[]> download2(String filename,HttpSession session) throws IOException{
        String path=session.getServletContext().getRealPath("/WEB-INF/upload/");
        File file=new File(path,filename);

        byte[] bytes= FileUtils.readFileToByteArray(file);
        HttpHeaders httpHeaders=new HttpHeaders();
        httpHeaders.add("content-disposition","attachment;filename="+filename);
        return new ResponseEntity<byte[]>(bytes,httpHeaders, HttpStatus.OK);
        }

首先让我们先来看看这一个代码块,RequestMapping应该不用解释了把,这个是地址,就是地址栏最后加上括号里面的东西就可以实现跳转。

直接进入主题吧,这个传输数据,请求头,状态码是什么意思呢?传输数据也就是由文件夹或者数据库向前端传递数据,那应该怎么实现这个数据传送过程呢?首先,我们需要定义所需要下载的文件的路径在哪里,用String来定义,名字为path(或者你改其他也可以),定义好后,把这个path放在File类里面,加上文件的名字filename,然后这整个文件就会被File接收,然后用byte类进行接收这个File,这个是把文件转换为字节,这就生成了文件数据。

然后生成请求头,先把请求头new出来,然后在请求头中添加方法,也就是如何显示弹窗,弹窗后文件一开始显示的所需要下载的文件名字是多少,也可以设置。

最终return这些数据在new ResponseEntity<byte[]>中,并且写入状态码为OK

猜你喜欢

转载自blog.csdn.net/Andre_dong/article/details/107911924