在一个项目中很常见的一个效果就是 下载图片、文件功能,下边就介绍两种方法

1.用jq写下载的方法

//html中代码如下
<div><p>点击图片可下载</p><img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1543890538&di=b54e3bf81971467f57fd5bb39f493f65&imgtype=jpg&er=1&src=http%3A%2F%2Fwww.qqoi.cn%2Fimg_star%2F181240813.jpeg" alt="" id="download" style="width:260px;height:350px;">
</div>
//JQ代码如下:
$('#download').click(function(){var url = $(this).attr('src')window.open(url)
})

用这种方法的时候会有一个问题,就是如果你下载的是一个图片类型的文件,如jpg,png等等,不同的浏览器会有不同的处理方式,谷歌浏览器就会新开一个窗口展示此图片,如想接着下载,自行点右键保存文件~,

还有的小伙伴 会用到 window.location(url), 这种方式遇到的问题就是不会新打开窗口,直接在原窗口展示图片。所以更偏离下载图片的一个功能,不太符合我们原本想要的效果;

再此 ,再点明一点: 在使用vue框架编程序的时候用到下载方法,有的会提示
window.open() 方法找不到或者未定义。原因是 open方法已经被占用。可能你又会说,我并没用到过open方法呀~。但是冥冥中再某个角落 open方法确实已经被占用了! 所以解决办法就是:

<div><p @click="download(https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1543295819912&di=d20e2ca20b50b6dbd58ffae574891dc8&imgtype=0&src=http%3A%2F%2Fc2.haibao.cn%2Fimg%2F0_0_100_1%2F1531134422.2724%2F41280bcc8cd59bbf813af0e29fb06bb2.jpg)">下载</p>
</div>
//JQ代码如下:
methods:{download(url){var open = " "  //先声明open 为 “”,,这样window.open()方法就能找到并下载。window.open(url)}
}

另外:.pdf 、 .doc 等类型的文件(即除了图片类型的文件),可直接实现下载效果,不存在新窗口直接打开的文件;

方法2.这里介绍一个好用的download属性来实现下载功能

在a 标签中添加download属性,即:<a href="url" download></a>
注意:download 属性必须在a标签中才可以使用。其他标签中使用无效;
优点就是:
比如 .jpg .png这样的相对路径的图片文件,浏览器直接就可以下载,并不是先在新窗口打开图片了,这样也就解决了方法1中存在的问题。
一个浏览器兼容问题:
参考链接:https://blog.csdn.net/p312011150/article/details/78928244

但是:只有相对路径的图片是可以直接下载的!网络路径的图片仍然是先打开 后自行下载!
网络图片的结果就是在chrome浏览器 frefox,ie浏览器里面直接打开而不是下载,360浏览器,QQ浏览器执行下载。
这个属性存在兼容性问题。

所以,总之!图片或者文件弄成一个压缩包的话 ,href的地址就算是一个网络地址,但是直接打不开就会执行下载。这也是一个办法。只要是浏览器直接解析不出来的东西都是可以执行下载动作的。

因为通常如果a标签的href属性=‘xxx’,如果xxx可以被浏览器解析,那么xxx就会被页面打开,而不是被下载,只有当浏览器不能解析的时候,那么才会被下载到本地。通常 js, 图片,html等文档均可被解析,MP4,mp3,zip等文件不会被解析。

此处参考:https://blog.csdn.net/xiaoqiangbigbrother/article/details/8121836

再来一点:Download 属性可以设置一个值
Html5里面的 a标签的 Download 属性可以设置一个值来规定下载文件的名称。所允许的值没有限制,浏览器将自动检测正确的文件扩展名并添加到文件 (.img, .pdf, .txt, .html, 等等),

<a href="https://vuejs.org/images/logo.png" download="vueLogo.png">下载 vue 的 LOGO</a>

通过给 download 添加属性名,就可以直接下载并且重命名为这个文件名了。

jq 之 download下载图片或文件功能,以及一个神奇的download属性!相关推荐

  1. 打包下载图片(文件)

    1. 打包下载图片(文件) ·ReportFile 实体类 随便你自己怎么写了 ·reportFile.getFilePath() 文件存放路径 /*** @param id*/ @ResponseB ...

  2. Vue中实现图片下载到本地功能和导出(下载)excel文件功能:

    一.实现图片下载到本地功能 需求: 将勾选的列表项的id传给后台,让后台处理并下载对应的图片 1. 后台接口: 下载图片zip: GET /download 请求数据类型 application/x- ...

  3. python下载图片到文件夹_python实现解析markdown文档中的图片,并且保存到本地~

    背景 前阵子简书好像说是凉了,搞得我有点小慌,毕竟我的大部分博客都是放在简书上面的,虽然简书提供了打包导出功能,但是只能导出文字,图片的话还是存在简书服务器上面,再加上我一直想要重新做一个个人博客,于 ...

  4. python下载图片到文件夹_python 移动图片到另外一个文件夹的实例

    python 移动图片到另外一个文件夹的实例 如下所示: # -*- coding:utf8 -*- import os import shutil import numpy as np import ...

  5. 根据URL下载单个图片与批量打包下载图片(文件同理)

    根据url下载图片看起来很简单,做起来还是有点曲折的 首先,直接file_put_content()的话可以下载图片但不知道图片保存在什么位置,所以必须要调用浏览器下载,使用header头. func ...

  6. java url类下载_Java根据url下载图片或文件的工具类-Fun言

    package cn.funyan.utils; import java.io.FileOutputStream; import java.io.IOException; import java.io ...

  7. 小程序下载图片、文件、wx.downloadFile,废话少说直接上代码

    官方开发文档   wx.downloadFile(OBJECT) 下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径.使用前请先阅读说明. OBJECT参数说明: ...

  8. python下载图片到文件夹_Python下载图片并保存本地的四种方法

    一:使用Python中的urllib类中的urlretrieve()函数,直接从网上下载资源到本地,具体代码: import os,stat import urllib.request img_url ...

  9. 微信图片上传,遇到一个神奇的jgp

    微信图片上传,获取图片base64遇到一个神奇的   jgp var imgFn = function (event) {event.preventDefault();var id = '#'+$(t ...

最新文章

  1. windows无法启动oracleremexecservice服务_Windows下MySQL无法启动万能解决方案
  2. lvs-dr模式原理详解和可能存在的“假负载均衡”
  3. 老板想okr,员工想kpi
  4. html5比赛策划书,FashionAI 天池竞赛 - Top5 技术方案简汇
  5. 重庆北大青鸟【学员心声】:转行是痛苦的,但决定是正确的!
  6. 奥维地图怎么查看历史地图_奥维互动地图使用小技巧
  7. linux下删除带特殊符号的文件
  8. ps画画模糊笔刷_PS十个必须知道画笔的使用技巧
  9. CAS算法中的ABA问题的解决
  10. 【摄影笔记三】光圈和快门
  11. 咸鱼Maya笔记—Maya 多边形组件简介
  12. 怎样调整计算机显示屏窗口,电脑显示器怎么调节参数
  13. 计算机如何添加新用户,Win10创建新用户图文教程 Win10怎么新建账户
  14. 高并发系统设计 --基于MySQL构建评论系统
  15. list过滤重复数据java_java中List去除重复数据的五种方式
  16. wndows 系统变量
  17. 纯CSS实现粉红爱心动画
  18. 用计算机怎样提交作业,怎样交计算机作业.doc
  19. NRF2401 ,NRF905 ,CC1100无线应用开发文档
  20. shell脚本基础知识(入门)

热门文章

  1. 札记-20190707
  2. 6.Oracle-安全管理
  3. Django之数据接口开发
  4. 【Cron】学习:cron 表达式
  5. 2018.8.4T3(大容斥)
  6. ctfshow-web入门(21-28)
  7. 前洛克希德马丁高工谈宽带RF接收机架构
  8. Rings(思维/贪心)
  9. Ultimate Email Toolkit:16种出色的电子邮件工具
  10. kali linux忘记密码找回方法