js下载文件并修改文件名


Posted in Javascript onMay 08, 2017

用js下载文件,使用<a>标签,添加download属性即可。

var a = document.createElement("a");
a.href = "http://XXX.com/audioStream/8a9dbae9d0859e48fc1f590fcf6d4ccc.mp3";
a.download ="test.mp3";
a.click();

但是如果想给文件重新命名,貌似js无法实现。

因此考虑后台实现,用java代理请求,获取文件设置文件名,返回到前端。

public void downFiles(HttpServletResponse response,String url,String workInfoId,int type){
  try{
   String prefix = type == 1 ? "wav" : "txt";
   url = type == 1 ? url : (url + "?textInfoId="+workInfoId);
   HttpEntity entity = Request.Get(url).
     execute().returnResponse().getEntity();
   byte[] bys = EntityUtils.toByteArray(entity);
   //获取作品名称
   Works works = this.worksDao.findByWorkId(workInfoId);
   String name = (works!=null && StringUtils.isNotBlank(works.getName())) ? works.getName() : Long.toString(new Date().getTime());
   response.setHeader("Content-Disposition", "attachment; filename="+ new String(name.getBytes("utf-8"), "ISO-8859-1")+"."+prefix);
   OutputStream out = response.getOutputStream();
   out.write(bys);
   out.close();
  }catch (Exception e){
   e.printStackTrace();
  }

 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Input 特殊事件onpopertychange和oninput
Jun 17 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
Oct 20 Javascript
jQuery实现切换页面布局使用介绍
Oct 09 Javascript
让table变成exls的示例代码
Mar 24 Javascript
JavaScript数据类型判定的总结笔记
Jul 31 Javascript
JavaScript 不支持 indexof 该如何解决
Mar 30 Javascript
如何用js判断dom是否有存在某class的值
Feb 13 Javascript
JS路由跳转的简单实现代码
Sep 21 Javascript
微信小程序自定义prompt组件步骤详解
Jun 12 Javascript
angularJs select绑定的model取不到值的解决方法
Oct 08 Javascript
Vue使用zTree插件封装树组件操作示例
Apr 25 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
May 12 Javascript
JS将unicode码转中文方法
May 08 #Javascript
js实现点击切换checkbox背景图片的简单实例
May 08 #Javascript
完美解决浏览器跨域的几种方法(汇总)
May 08 #Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 #jQuery
Angular.JS内置服务$http对数据库的增删改使用教程
May 07 #Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
May 07 #Javascript
Angular2中select用法之设置默认值与事件详解
May 07 #Javascript
You might like
php简单封装了一些常用JS操作
2007/02/25 PHP
PHP 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
2011/04/18 PHP
微信支付PHP SDK ―― 公众号支付代码详解
2016/09/13 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
jquery 输入框数字限制插件
2009/11/10 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
五步轻松实现zTree的使用
2017/11/01 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
[01:13:51]TNC vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
跟老齐学Python之总结参数的传递
2014/10/10 Python
python制作企业邮箱的爆破脚本
2016/10/05 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
与UNIX有关的几个名词
2015/09/17 面试题
做一个有道德的人演讲稿
2014/05/14 职场文书
文秘应届生求职信
2014/07/05 职场文书
人事专员岗位说明书
2014/07/29 职场文书
三方协议书
2015/01/27 职场文书
教师继续教育反思周记
2015/06/25 职场文书
丧事主持词
2015/07/02 职场文书
python面向对象版学生信息管理系统
2021/06/24 Python
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL