-
2020-03-06 17:18:21
href + download方法
当我们使用a标签链接要下载的.txt或者.log等文件时,总是浏览器直接打开了文件而不是下载解决方式如下:给a标签添加一个download属性
<a href="/upload/aaa.txt" download>
其中download可以给值也可以不给值
自己尝试一下
更多相关内容 -
JAVA --下载文件 点击链接直接下载 而不是打开文件
2018-10-29 19:24:361- html、jsp 设置a标签属性。我这里就不说了.....(<a href="imges/1.jpg" download="图片"><img src="imges/1.jpgf" alt="... //下载文件名1- html、jsp 设置a标签属性。我这里就不说了.....(<a href="imges/1.jpg" download="图片"><img src="imges/1.jpgf" alt="图片"></a>)
2- PHP
<? $file_name = "xxx.rar"; //下载文件名 $file_dir = "./up/"; //下载文件存放目录 //检查文件是否存在 if (! file_exists ( $file_dir . $file_name )) { echo "文件找不到"; exit (); } else { //打开文件 $file = fopen ( $file_dir . $file_name, "r" ); //输入文件标签 Header ( "Content-type: application/octet-stream" ); Header ( "Accept-Ranges: bytes" ); Header ( "Accept-Length: " . filesize ( $file_dir . $file_name ) ); Header ( "Content-Disposition: attachment; filename=" . $file_name ); //输出文件内容 //读取文件内容并直接输出到浏览器 echo fread ( $file, filesize ( $file_dir . $file_name ) ); fclose ( $file ); exit (); } ?>
。。。。。。。。。。。。。。。。。
算了,其他的就不说了。。
JAVA --- 生成的链接直接下载
@RequestMapping(value = "download/pdf", method = RequestMethod.GET) public void creditFailurePdf(HttpServletRequest request, HttpServletResponse response) { String code = CommUtil.toString(request.getParameter("code")); creditFailurePdfService.getPdf(code, response); }
CommUtil.toString 是转String 的方法
getPdf()方法如下:这里in为输入流
InputStream in = getFileStream(pdfUrl);
public InputStream getFileStream(String filePath){ String DEFAULT_ENCODING = "UTF-8"; BufferedReader reader = null; StringBuilder sb = new StringBuilder(); URL url; InputStream in = null; try { url = new URL(CommUtil.toString(filePath)); URLConnection conn; try { conn = url.openConnection(); conn.setDoOutput(true); conn.setConnectTimeout(120000); conn.connect(); in = conn.getInputStream(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return in; }
public void getPdf(String code, HttpServletResponse response){ BufferedOutputStream bost = null; BufferedInputStream inbuf = null; ServletOutputStream out = null; try { out = response.getOutputStream(); bost = new BufferedOutputStream(out); // 设置response参数,打开下载页面 response.reset(); response.setContentType("APPLICATION/octet-stream"); response.setContentType("text/html;CHARSET=UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode((CommUtil.getUUID() + ".pdf"), "UTF-8")); // 生成下载文件 // 每次读取1024字节的数据并写入到文件中 ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len; try { while ((len = in.read(buffer)) > -1) { baos.write(buffer, 0, len); } baos.flush(); } catch (IOException e) { e.printStackTrace(); } in = new ByteArrayInputStream(baos.toByteArray()); inbuf = new BufferedInputStream(in); byte[] by = new byte[1024]; while (true) { len = inbuf.read(by); if (len == -1) { break; } bost.write(by); bost.flush(); } out.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { // 关闭IO try { if (out != null) { out.close(); } if (bost != null) { bost.close(); } if (inbuf != null) { inbuf.close(); } if (in != null) { in.close(); } } catch (IOException e) { e.printStackTrace(); } } }
-
chrome中如何下载文本文件(不是直接打开)
2020-01-02 12:25:36缘起: 有时点击文本文件的链接的时候,会直接在chrome中打开显示该文本。 解决: 1、右击鼠标,“弹出menu中选择链接另存为”。 结果缘起:
有时点击文本文件的链接的时候,会直接在chrome中打开显示该文本。
解决:
1、右击鼠标,“弹出menu中选择链接另存为”。
结果
-
文件下载 浏览器直接打开文件而不是保存 相关问题
2016-02-02 10:04:36其中有个问题就是txt css js html xml pdf 等等文件下载时浏览器(html5的a标签download属性不是所有浏览器都支持的)是直接打开,而不是下载保存。网上有许多解决的方法,我这边只是整合下,做个mark。 场景就是有...昨天做SpringMVC 文件上传下载功能时遇到一堆问题。其中有个问题就是txt css js html xml pdf 等等文件下载时浏览器(html5的a标签download属性不是所有浏览器都支持的)是直接打开,而不是下载保存。网上有许多解决的方法,我这边只是整合下,做个mark。
场景就是有个url,老大提醒说用后台访问url获取文件流 前台来处理。。大概这个流程 代码如下:
前端js部分,参考http://www.alloyteam.com/2014/01/use-js-file-download/
//得到拼接字符串 function getFJInfo(name, url) { return "<tr><td style=''><a href='javascript:void(0)' οnclick='getDownFile(\"" + url + "\",\"" + name + "\")'>" + name + "</a></td></tr>" } //文件下载 function getDownFile(url, name) { var param = { "url": url }; $.ajax({ url: contextPath + '/product-label/file2Stream', type: 'GET', data: Base64.encode(JSON.encode(param)), dataType: "text", success: function(data) { downloadFile(name, data) } }) } //流处理触发下载事件 function downloadFile(fileName, content) { var aLink = document.createElement('a'); var blob = new Blob([content]); var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); aLink.download = fileName; aLink.href = URL.createObjectURL(blob); aLink.dispatchEvent(evt) }
后台controller处理,参考http://blog.sina.com.cn/s/blog_87216a0001014sm7.html
/** * 返回流 * * @param requestMap 请求参数 * @param response 返回对象 */ @RequestMapping(value = "/file2Stream", method = RequestMethod.GET) public void file2Stream(@Json Map<String, Object> requestMap, HttpServletResponse response) { try { String url = String.valueOf(requestMap.get("url")); // URL url =new URL(String.valueOf(requestMap.get("url"))); InputStream iStream = getFileStream(url); OutputStream stream = response.getOutputStream(); stream.write(StreamUtils.getBytes(iStream)); stream.flush(); stream.close(); } catch (Exception e) { LOG.error("ProductSalesRecommendController.file2Stream error | ({})", e); } } /** * HttpURLConnection获取网络路径的文件流 * * @param url 链接 * @return InputStream * @throws IOException */ private InputStream getFileStream(URL url) throws IOException { HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5 * 1000); conn.setRequestMethod("GET"); InputStream inStream = conn.getInputStream(); return inStream; } /** * HttpClient获取网络路径的文件流 * * @param url 链接字符串 * @return InputStream * @throws IllegalStateException * @throws IOException */ private InputStream getFileStream(String url) throws IllegalStateException, IOException { HttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, 5000); // 设置连接超时为5秒 HttpClient client = new DefaultHttpClient(httpParams); // 生成一个http客户端发送请求对象 HttpResponse httpResponse = client.execute(new HttpGet(url)); // 发送请求并等待响应 HttpEntity entity = httpResponse.getEntity(); // 获取响应里面的内容 InputStream inStream = entity.getContent(); return inStream; }
先这样吧。。老大说还有更高大上的。过段时间再看看 -
a标签下载txt,会直接打开txt文件的处理方法
2020-03-15 11:25:34通常在咱们写项目的时候会遇到上传下载什么的,在上传完文件后会把文件的路径保存到数据库里以便下载,如果想不通过后台直接下载的话,可以把文件路径给a标签的属性href; <a href="/attachment/xxxx.txt">... -
页面自定义下载链接,避免txt等格式文件被直接打开
2021-03-18 15:12:42//设置a标签的下载名字 aLink.style.display = 'none'; // 字符内容转变成blob地址 var blob = new Blob([xmlHttp.responseText]); aLink.href = URL.createObjectURL(blob); // 触发点击 document.body.... -
IOS上H5端下载文件时不要默认打开预览。和Android一样直接下载
2018-11-13 07:22:10问一下有没有遇到类似的问题, 在H5端实现文件下载,我现在直接 window.open(文件url);Android会吊起自带浏览器启动下载。 IOS会直接在当前webview新开标签页显示文件预览。如何让ios上也可以直接下载文件 -
解决centos 7 打开php文件直接下载问题
2019-05-02 18:24:24搭建好LNMP环境后,访问服务器上的php文件,居然直接下载而不是解析php文件。 找了好多博客,外行提取到的信息甚浅,跌跌撞撞很久之后终于成功了。 方法:配置nginx.conf文件 在我的服务器上,它的路径是/etc/nginx... -
Vue a标签实现点击下载,下载图片、txt文件,不是直接打开的方式
2020-04-27 11:51:56前段时间在项目中遇到文件需要下载,直接拿出了之前封装的下载指令,在用的时候发现在下载jpg、txt文件时,并不会直接下载,而是会在浏览器中打开文件,即使给a标签添加了download 属性,也无济于事。 我先把之前... -
关于pdf文件直接在chrome浏览器中直接打开而不是下载的问题
2019-03-26 18:21:49这个原因就是:打开chrome的设置 => 高级 => 内容设置 => pdf => 就是这个东西,。搞得我好长时间不知道怎么回事。。。阿西吧!!据我所知,火狐也有这种问题。。。 ... -
Postman:测试下载文件时默认打开文件改为弹出下载框
2021-12-09 19:06:52在Postman工具测试下载文件的功能时默认是将文件用文本方式打开,而我们需要的是弹出下载框的方式下载文件。此时需要做一下变动。 解决方案 点击send的按钮旁边的箭头,选择 send and download,就会在发送请求后... -
【Java文件下载】如何让浏览器直接下载后端返回的图片,而不是直接打开
2020-01-19 21:55:24默认情况下,浏览器设定是inline形式,对于服务器返回的文件,能打开就打开,不能打开就自动下载。 大多数情况下,后端都是实现一个文件管理的功能,通过文件的唯一标志去获取文件流。后端都会读取文件,然后文件的... -
解决a标签下载网络图片直接打开的问题,通过浏览器下载网络文件
2018-12-12 11:45:44因为公司用的分布式文件系统上传文件后返回的是 http文件路径,当文件是图片是,用a标签下载会直接打开而不是下载,所以找了下怎么通过浏览器下载远程服务器上的图片。网上大部分都是后台代码,现在把前端后台一起... -
如何在html中下载pdf等文件而不是直接打开
2019-08-16 17:09:13在HTML4.0中直接用标签对文件进行下载,如果不想在浏览器中直接打开,则给标签添加属性download进行下载 比如: <html> <head> <tile>Test</tile> </head> <body> <a ... -
json文件下载--防止chrome直接打开方案
2018-06-12 12:43:05通常在咱们写项目的时候会遇到上传下载什么的,在上传完文件后会把文件的路径保存到数据库里以便下载,如果想不通过后台直接下载的话,可以把文件路径给a标签的属性href; &lt;a href="/user/... -
如何直接打开ftp里的 word 文档 win7 ftp直接打开word
2021-08-01 07:47:38ftp不能直接打开word我的电脑不能在ftp上直接打开文件,其在浏览器中输入ftp地址,不能显示文件夹视图。但是可以在资源管理器的地址栏输入地址后打开。打开IE的工具,找到Internet选项。点高级,找到启用FTP文件夹... -
设置 python文件的默认打开方式为自带的IDLE打开
2020-02-28 20:52:15有两种方式可以设置默认打开方式: 第一种:右键 py 文件,选择打开方式,找到 idle.bat 这个文件 。 (这个方法有个缺点,就是py文件的显示会不好看) 第二种:修改注册表。 1、win + r 打开,输入 ... -
使用js直接下载pdf文件而不用在新的浏览器窗口打开
2020-04-28 20:53:07最近接了一个需求,要求用户点击下载按钮后直接下载pdf文件,而不是打开一个新窗口,让用户再去手动保存。 接到需求后我立刻着手在网上查找文档,发现很多声称可以实现直接下载的方法都不行,只有下面这个方法成功... -
Oss上传的html文件不能直接访问,浏览器打开直接下载了
2020-02-24 18:52:35因为之前是在七牛上操作的,七牛上直接能显示网页内容。 需要给OSS的桶子绑定了域名,使用域名就可以传了。 有点坑额 例子 :http://oss-test.prod-code.com/online/ProductDetailToOss-107855585525848616.html -
Java 下载文件,浏览器直接打开,并且PDF再次点击下载时,文件名称设置正确
2017-11-24 15:49:05点击会提供对话框选择另存为: response.setHeader( “Content-Disposition ...通过IE浏览器直接选择相关应用程序插件打开: response.setHeader( “Content-Disposition “, “inline;filename= “+fliename) 下 -
关于在浏览器中直接打开文件,而不需要下载
2017-06-23 07:31:51各位大神,我又一个下载,点击下载的时候会提示保存;有没有办法处理让他直接在窗口中打开文件内容。使用js或者第三方框架都可以。 -
minIO如何设置直接通过访问链接在浏览器中打开文件
2020-04-28 11:39:54在数据质量中心的需求开发中,需要将测试报告存储在minIO系统上,并记录访问链接,前端获取文件链接后,直接在浏览器中打开html报告。 如以下报告链接... -
阿里云 oss 文件不能下载 只能直接打开的解决方案
2018-07-03 15:09:14阿里云的oss,直接上传后,可以访问,直接是打开有一些程序,需要直接能下载设置oss文件的Content-Disposition属性值为attachment就是直接打开了但oss有很多文件,不能批量设置现在可以用ossutil批量操作=====原理:... -
点击超链接实现文件下载而不是打开
2019-05-24 11:49:42当下载图片类型文件时,会在浏览器中直接打开。 添加Content-Disposition: attachment 响应头无效,图片还是直接打开 添加Content-Disposition: attachment 图片可以下载,但pdf类型文件还直接打开 本文将针对以上... -
怎样在微信中点击app下载链接直接打开下载安卓/苹果(apk/ipa,pxl,deb)文件
2019-03-15 22:58:402、安卓用户打开链接后要么直接下载,要么前往手机默认浏览器下载。 以上是最好的实现方式,该实现方式可以使转化率达到最大化。但不尽人意的是微信系统会阻碍用户去使用微信推广app,最常见的状况就是苹果用户在... -
Unity设置文件的默认打开方式
2019-02-21 19:21:52在unity开发时,我们通常需要编辑不同的脚本(C#、Lua、XML、Shader...),而unity通常打开所有二级制文本文件都是要么MONO要么VS,下面将以shader为例改变shader文件的默认打开方式为VS Code。 1.首先我我们在... -
教你怎么直接打开jar文件运行
2020-07-15 18:48:55像这种jar文件有的电脑可以直接双击打开就出现界面,但是有的就不行 接下来就教你吧 首先在这个文件的当前位置打开cmd 然后输入java -version,查看一下有没有安装java,出现版本就说明有安装 然后输入“java -jar... -
html5链接直接下载文件 不是直接打开 如pdf, doc 等
2016-03-21 11:16:53download="w3logo">浏览器支持IEFirefoxChromeSafariOpera否 是是否否只有 Firefox 和 Chrome 支持 download 属性。HTML 4.01 与 HTML 5 之间的差异在 HTML5 中,download 属性是 标签的新属性。
收藏数
2,089,701
精华内容
835,880