当前位置: 首页 > 编程笔记 >

js下载文件并修改文件名

上官羽
2023-03-14
本文向大家介绍js下载文件并修改文件名,包括了js下载文件并修改文件名的使用技巧和注意事项,需要的朋友参考一下

用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();
  }

 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 嗨,我正在尝试从json文件中获取数据,然后插入和ID,然后执行POST REST。我的文件data.json具有: 并且我想添加一个id,以便json数据如下所示: 所以我尝试了: 我无法加载json格式文件。我应该怎么做才能将json文件转换为json对象并添加另一个id值。 问题答案: 使用设置项目。

  • 下载 <?php /** * 下载文件请求示例 */ require dirname(__DIR__) . '/vendor/autoload.php'; use Yurun\Util\HttpRequest; use Yurun\Util\YurunHttp; use Yurun\Util\YurunHttp\Handler\Swoole; $url = 'http://www.baid

  • 本文向大家介绍Linux下修改jar、zip等文件内的文件详解,包括了Linux下修改jar、zip等文件内的文件详解的使用技巧和注意事项,需要的朋友参考一下 Linux下修改jar、zip等文件内的文件详解 看到很多同事在Linux环境下修改jar包内的文本文件或zip中的文本文件时,经常是先把jar包或zip包下载下来,然后修改,再上传。其实Linux针对此类文件提供了相应的操作功能。 平时修

  • 问题内容: 环顾四周,但找不到一个示例。没有解释文档,我无法弄清楚。 如何修改文件(例如,README.md),为修改后的文件创建提交,然后将提交推送到服务器? Nodegit:http ://www.nodegit.org/ Nodegit文档:http ://www.nodegit.org/nodegit 问题答案: 有一个示例,说明如何在其存储库上创建/添加和提交,可以帮助您修改文件。 ht

  • 7.1.3.修改Manifest文件 无论何时,只要新建了基本构件(Activity,Service,BroadcastReceiver,ContentProvider)就要修改Manifest文件,添加相应的声明。在这里,我们需要将PrefsActivity注册到Manifest文件。 同前面一样,在Eclipse中打开XML文件会默认进入Eclipse提供的图形化编辑界面。选择Applicat

  • 问题内容: 我可以一次下载一个文件: 我可以这样尝试: 有没有不使用或作弊的并行化方法? 鉴于我现在必须诉诸“作弊”,是否是下载数据的正确方法? 使用上述方法时,它使用的是多线程而不是多核的,是否正常?有没有办法使它成为多核而不是多线程? 问题答案: 您可以使用线程池并行下载文件: 您还可以使用以下命令在一个线程中一次下载多个文件: 这里定义在哪里。