java后台简单从腾讯云下载文件通知前端以附件的形式保存

不废话 上代码

  // fileName :前台传入的文件名(主要是标识文件是什么格式.png或.zip)
// cosKey:上传文件时腾讯云返回的标识
// 配置腾讯云基本信息
 String aliyunId = ApplicationPropertyUtils.getContextProperty("TENXUN_ACCESS_KEY_ID");
            String aliyunSecret = ApplicationPropertyUtils.getContextProperty("TENXUN_ACCESS_KEY_SECRET");
            String ossEndpoint =  ApplicationPropertyUtils.getContextProperty("TENXUN_OSS_ENDPOINT");
            COSClient cosClient  = new COSClient(cosEndpoint, tenxunId, tenxunSecret);  

            // 从腾讯云下载文件
            GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName,cosKey);//bucketName需要自己设置
            COSObject cosObject = cosClient.getObject(getObjectRequest);
            COSObjectInputStream cosObjectInput = cosObject.getObjectContent();

            // 从阿里云进行下载 http://blog.csdn.net/qq_35498405/article/details/77942817
            // 缓冲文件输出流
            BufferedOutputStream outputStream=new BufferedOutputStream(response.getOutputStream());
            // 通知浏览器以附件形式下载
            response.setHeader("Content-Disposition","attachment;filename="+ URLEncoder.encode(fileName,"UTF-8"));

            // 进行解码 为防止文件出现乱码 文件上传时进行编码处理
            BASE64Decoder base64Decoder = new BASE64Decoder();

            byte[] car=new byte[1024];
            int L=0;
            while((L=cosObjectInput.read(car))!=-1){
              car =  base64Decoder.decodeBuffer(cosObjectInput);
              //L 如果不给长度会有文件损坏
                outputStream.write(car, 0,L);

            }
            if(outputStream!=null){
                outputStream.flush();
                outputStream.close();
            }

        }

注意:在实际使用该方法下载的过程中,可能遇到服务器不报错,但就是下载不下来文件的问题,这样有可能是前端页面发出下载请求的方式有误,不能使用AJAX的get方式访问该方法,因为Ajax能够返回的数据格式只能为html,script,json,xml,不接受流的形式。笔者使用的方式是用window.location.href访问,或者使用from表单提交方式(GET/POST)。

腾讯开放平台文档

https://cloud.tencent.com/document/product/436/10199#.E7.AE.80.E5.8D.95.E6.96.87.E4.BB.B6.E4.B8.8A.E4.BC.A0

阿里云下载链接

http://blog.csdn.net/qq_35498405/article/details/77942817

时间: 2024-11-05 04:47:16

java后台简单从腾讯云下载文件通知前端以附件的形式保存的相关文章

java后台简单从阿里云下载文件通知前端以附件的形式保存

代码块语法: @Override public MessageVo getDownLoadFile(String fileName, String ossKey, HttpServletResponse response) { // fileName :前台传入的文件名(主要是标识文件是什么格式.png或.zip) // ossKey:上传文件时阿里云返回的标识 // 配置阿里云基本信息 String aliyunId = ApplicationPropertyUtils.getContextP

Java Web实现使用浏览器从服务器下载文件(后台)

Java Web实现 使用浏览器从服务器下载文件. 下面实现两种情况的下载,需求如下: 需求(一):1.用户在页面填写表单. 2.填写完成后,选择下载,将表单内容发往后台. 3.后台根据内容生产一个文件,发送给前端. 4.前端成功下载文件到本地. 此需求简单来说就是,用户在页面上填写内容,然后将内容转变成文件的形式. 后台设计思路:1.首先拿到前端发送过来的内容. 2.将内容解析,存放至缓冲区. 3.设置响应头. 4.将缓冲区里的内容,以流的方式写出. 代码实现: public void dow

【JAVA】通过HttpURLConnection 上传和下载文件(二)

HttpURLConnection文件上传 HttpURLConnection采用模拟浏览器上传的数据格式,上传给服务器 上传代码如下: 1 package com.util; 2 3 import java.io.BufferedInputStream; 4 import java.io.BufferedReader; 5 import java.io.DataOutputStream; 6 import java.io.File; 7 import java.io.FileInputStre

Java中向ftp上传、下载文件

最近的一个项目跟ftp打交道很多,经常需要向ftp上传.下载文件,现在总结一下公共方法. 上传 /** * 文件上传 * * @param ip * host * @param port * 端口 * @param userName * 用户名 * @param passWord * 密码 * @param localpath * 上传文件在本地磁盘路径 * @param fileName * 文件名 * @param remotePath * 文件要上传到ftp服务器的路径 * @throws

使用Java后台服务器通过腾讯信鸽向app推送消息_快速上手案例

这两天公司业务有需求,当用户进行一些操作,比如下订单.支付等操作时,需要关联后台自动向app推送顶栏消息.为了实现这个功能,使用了腾讯信鸽推送.<腾讯信鸽推送>已经封装好了推送代码,只需要调用它一个方法就可以,在方法参数中传入识别id和推送内容,就能完成推送消息到目标设备,实现起来其实非常容易! 第一步:登陆腾讯信鸽网站,下载jar包http://xg.qq.com/docs/server_api/other.html 然后点击java服务端,弹出下载框(我用的是火狐浏览器),保存文件 解压文

腾讯云COS,上传,下载,删除,在线查看等操作

研究了下文档,学会的先记录下. 首先新建工具类COSUtil. 配置账号密码.存储桶以生成客户端(每个方法下都需要配置,为了代码简洁后面的方法会省略): 1 String secretId = "root"; //初始化用户身份信息(secretId, secretKey). 2 String secretKey = "123456; 3 String bucketName = "test-1250000000"; //初始化存储桶 4 5 COSCred

胡泽锐:移动开发即服务——腾讯云移动开发平台技术分享

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:胡泽锐,2010 年毕业加入腾讯,先后负责过QQ空间.网页应用.移动应用.移动游戏相关的工作,有着丰富的平台产品经验以及大前端开发经验,目前在腾讯云负责前端以及终端相关的工作,提出并推动移动开发平台产品的落地. 很高兴能和大家分享移动开发的历史.现状.以及未来,一起探索面向云端的全新模式--移动开发即服务.正因为有了移动开发即服务的理念,才有了移动开发平台这个产品.传统模式下,大家都是以单个产品或者能力的方式提供服务,比如推送的就

腾讯云部署自己项目步骤

最近,自己用Java WEB完成了一个网站,然而,不知道如何部署到云服务器上.百度了很多,也没有完整的,后来自己摸索,完成了部署.本文,将介绍如果将web项目部署到腾讯云服务器上. 在这里呢,很多人就要问了,为什么是腾讯云呢?其实很简单,腾讯云有一个学生认证,腾讯提供0元购买一个cn域名,1元购买云服务器.简直是学生党的福利,虽然服务器是入门级的,但是绝对够用了. 接下来,开始教程! 一.服务器和域名的购买 登陆腾讯云(网址自行百度).如果你是学生,强烈建议你和我一样完成学生认证,土豪请无视这一

微信小程序基于腾讯云对象存储的图片上传

在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢.2.时常有上传其他文件来攻击服务器,安全上得不到保障.所以我们在经过慎重考虑觉得使用第三方的云存储服务. 在最开始的时候我们在腾讯云与阿里云中选择,最终我们选择腾讯云,腾讯云在文件上传用时方面的性能比较突出,文件越大表现越好:在下载用时方面表现略优于阿里云:文件删除用时方面总体速度略逊于,但在不同大小文件删除用时上都比较稳定.当然这与我们主要用于