在浏览服务器的时候 总是会遇到图片,文本等。
可以直接下载到本地,那么这个从服务器将资源获取下载的操作是怎么进行的
在response中有两种 输出文件的方式
一种是
response.getWriter 是用来字节码文件的
response.getoutputstream 是用来输出二进制文件的
因为要下载的是文本、图片之类 所以使用二进制文件的方法。
输出选择好了 现在就需要获取文件了。
获取文件需要用到
fileinputstream但是fileinputstream需要的是地址,所以我们需要再获取到文件的地址。
用到getservletcontext.getrealpath来获取到文件的位置。
而且文件位置要和你自己的文件位置对应。
idea自动是可以获取到根目录下的文件的。
所以如果你的文件不是放在根目录的,请把你的路径写完整不然是会出现错误的。
接下来就是文件的拷贝了。
首先int 一个 len=0
然后再new一个buffer 定义每次读取字节
写一个while循环,用输入流读取到buffer。
如果len大于零,那就说明没有读到文件的末尾。
就可以从0一直读取到len
然后读取完毕之后 关闭输入流
这样就会直接再浏览器中打开支持的文件,如果希望所有文件都下载的话,就是要在请求头,告诉浏览器你要下载你选择的文件。
具体代码如下
这样就可以达到想要下载文件的效果了