网站建设定制开发windows.open 在vue前端实现文件下载(自定义下载文件名)

1. 网站建设定制开发将要下载的文件放在前端项目的 assets 文件夹内

 网站建设定制开发我要下载的文件为  src/assrts/xxx/xxx模板.csv

 2. 在页面创建下载按钮   

3. 导入该文件

4. 在build文件夹下的.base.conf.js 文件中,添加csv(或者其他)解析类型

5. 编写下载方法

参考自:

下载按钮的方法为downloadARJ,根据不同文件的文件格式主要就是修改两个地方:

  • 第一个是类型:这个根据你的文件格式去设置;      常用的类型见最后一张图
  • 第二个是修改你想自定义的名字。

 下载方法的代码

  1. downloadARJ(){
  2. const bloc = this.dataURLtoBlob(ArjFileUrl)
  3. const blob = new Blob([bloc], {
  4. type: 'text/csv'
  5. })
  6. const downLoadEle = document.createElement('a')
  7. // 通过返回的二进制数据来创建一个对象URL.
  8. const href = URL.createObjectURL(blob)
  9. downLoadEle.href = href
  10. // 信息表为自定义文件名
  11. downLoadEle.download = 'ARJ模板文件'
  12. document.body.appendChild(downLoadEle)
  13. downLoadEle.click()
  14. document.body.removeChild(downLoadEle)
  15. // 当加载完成后释放对象URL.
  16. window.URL.revokeObjectURL(href)
  17. // window.open(fileurl, '_blank')
  18. },
  19. // 将文件对象先转换为了二进制,再调用
  20. dataURLtoBlob(dataurl) {
  21. const arr = dataurl.split(',')
  22. const mime = arr[0].match(/:(.*?);/)[1]
  23. const bstr = atob(arr[1])
  24. let n = bstr.length
  25. const u8arr = new Uint8Array(n)
  26. while (n--) {
  27. u8arr[n] = bstr.charCodeAt(n)
  28. }
  29. return new Blob([u8arr], {
  30. type: mime
  31. })
  32. },

最后,各类型的type  

参考自

  1. 'ppt' => 'application/vnd.ms-powerpoint',
  2. 'dir' => 'application/x-director',
  3. 'js' => 'application/x-javascript',
  4. 'swf' => 'application/x-shockwave-flash',
  5. 'xhtml' => 'application/xhtml+xml',
  6. 'xht' => 'application/xhtml+xml',
  7. 'zip' => 'application/zip',
  8. 'mid' => 'audio/midi',
  9. 'midi' => 'audio/midi',
  10. 'mp3' => 'audio/mpeg',
  11. 'rm' => 'audio/x-pn-realaudio',
  12. 'rpm' => 'audio/x-pn-realaudio-plugin',
  13. 'wav' => 'audio/x-wav',
  14. 'bmp' => 'image/bmp',
  15. 'gif' => 'image/gif',
  16. 'jpeg' => 'image/jpeg',
  17. 'jpg' => 'image/jpeg',
  18. 'png' => 'image/png',
  19. 'css' => 'text/css',
  20. 'html' => 'text/html',
  21. 'htm' => 'text/html',
  22. 'txt' => 'text/plain',
  23. 'xsl' => 'text/xml',
  24. 'xml' => 'text/xml',
  25. 'mpeg' => 'video/mpeg',
  26. 'mpg' => 'video/mpeg',
  27. 'avi' => 'video/x-msvideo',
  28. 'movie' => 'video/x-sgi-movie',

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发