java后台简单从腾讯云下载文件通知前端以附件的形式保存
来源:互联网 发布:唯品会秒杀软件 编辑:程序博客网 时间:2024/05/17 22:17
// 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)。
- 腾讯开放平台文档 点这里
- 阿里云下载链接 点这里
阅读全文
1 0
- java后台简单从腾讯云下载文件通知前端以附件的形式保存
- java后台简单从阿里云下载文件通知前端以附件的形式保存
- oss以附件的形式下载文件
- 实现从oss(阿里云)服务器以附件形式下载文件(含批量下载)
- 实现从oss(阿里云)服务器以附件形式下载文件
- 将文件以流的形式传给前端,前端点击按钮下载
- springMVC以附件形式下载PDF文件(解决了下载后文件格式出错无法打开的问题)
- JS实现页面HTML内容以另存为的文件形式下载保存
- 将附件以table列表的形式展示,并提供下载功能
- 文件下载:POI读取word或Excel,修改内容后以流的形式输出到前端
- java以流的形式显示文件
- java以流的形式输出文件
- java 后台把数据以图片的形式传到前台
- 关于文件/附件下载的Java代码
- jsp远程调用资源图片,以附件形式下载
- JAVA怎么把从TextArea获得的字符串以文件的形式输出
- asp.net以字符流的形式下载文件
- 以流的形式将文件写入页面,直接下载
- mysql笔记整理
- 排序与思维
- ubuntu14.04 LTS安装nvidia 驱动 [联想Y470 GT550M]
- PLSQL怎样导出oracle表结构和数据
- 技术劳动合同范文
- java后台简单从腾讯云下载文件通知前端以附件的形式保存
- C++基础试题,面试题,基础知识点
- ABAP Subscreen and tabstrip controls
- HttpClient(POST+GET)
- python里使用协程来创建echo服务器
- java8 stream().forEach 效率
- WebView界面
- ImageLoader加载网络图片无限轮播
- xListView(联网判断)