js用window.open(url)下载时,如何替换下载时的文件名?

var url=‘http://www.baidu.com/board/index.jpg’

前端在页面上用window.open(url)打开这个url,下载这张图片的时候,文件名字默认会是index.jpg。

怎么样做可以让这张图片下载的时候文件名从默认的index.jpg变成主页.jpg?

我不会说我已经做过最傻的做法,把index名字替换。。结果是404。。。被自己蠢哭。。

阅读 28.1k
2 个回答

这是不可能的 :)
你在评论中提到调起浏览器的下载功能,已经把控制权交还给浏览器了,JS无能为力

只有从服务端来控制,比如实现一个download.php页面,读取index.jpg的内容并按照二进制流输出到http response,并在response header中增加

Content-Disposition: attachment; filename=主页.jpg

这个是可以修改的

代码如下,希望楼上的不要误人子弟

        const url = 'fileApi/AccountTemplate.xlsx'
        const link = document.createElement('a')
        link.style.display = 'none'
        link.href = url
        link.setAttribute(
          'download',
          "导入学生账号模板"
        )
        document.body.appendChild(link)
        link.click()

就是body创建一个a标签,设置属性 click就行了 上面的导入学生账号模板就是自己想修改的下载时文件名

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题