[Java Web]从服务器获取文件并保存(预览)本地客户端-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

[Java Web]从服务器获取文件并保存(预览)本地客户端

简介: 一、使用场景 客户端请求服务器B保存某个文件到本地, 服务器B从远程服务器A中得到文件路径,服务器B通过拿到的文件路径,将文件处理后,客户端得到响应,实现保存文件在本地。

一、使用场景
客户端请求服务器B保存某个文件到本地,
服务器B从远程服务器A中得到文件路径,服务器B通过拿到的文件路径,将文件处理后,客户端得到响应,实现保存文件在本地。

二、思路代码
(这里以pdf文件为例子,服务器端B处理代码)

        //响应内容,这里在response中不设置contentType的话,在大多数(除IE外的浏览器)都是文件预览        
        response.setContentType("application/pdf");
        //响应头部
        response.setHeader("Content-disposition", "attachment;filename=" + “文件名” + ".pdf");

        OutputStream oputstream = response.getOutputStream();//
        URL url = new URL(“这里是服务器A端拿到的远程url”);
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        urlConnection.setDoInput(true);
        urlConnection.connect();
        InputStream inputStream = urlConnection.getInputStream();
        byte[] buffer = new byte[4*1024];
        int byteRead = 0;
        //写入流中处理
        while((byteRead=(inputStream.read(buffer)))!= -1){
            oputstream.write(buffer, 0, byteRead);
        }
        oputstream.flush();
        inputStream.close();
        oputstream.close();

整体就是,拿到远程文件url,然后服务器通过这个url建立流处理文件写入到response中。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章