精华内容
下载资源
问答
  • 2020-03-06 17:18:21

    href + download方法

    当我们使用a标签链接要下载的.txt或者.log等文件时,总是浏览器直接打开了文件而不是下载解决方式如下:给a标签添加一个download属性

    <a href="/upload/aaa.txt" download>

    其中download可以给值也可以不给值

    自己尝试一下

    更多相关内容
  • 1- html、jsp 设置a标签属性。我这里就不说了.....(&lt;a href="imges/1.jpg" download="图片"&gt;&lt;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中打开显示该文本。 解决: 1、右击鼠标,“弹出menu中选择链接另存”。 结果

    缘起:

    有时点击文本文件的链接的时候,会直接在chrome中打开显示该文本。

    解决:

    1、右击鼠标,“弹出menu中选择链接另存为”。

    结果

    展开全文
  • 其中有个问题就是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标签的属性href; <a href="/attachment/xxxx.txt">...
  • //设置a标签的下载名字 aLink.style.display = 'none'; // 字符内容转变成blob地址 var blob = new Blob([xmlHttp.responseText]); aLink.href = URL.createObjectURL(blob); // 触发点击 document.body....
  • 问一下有没有遇到类似的问题, 在H5端实现文件下载,我现在直接 window.open(文件url);Android会吊起自带浏览器启动下载。 IOS会直接在当前webview新开标签页显示文件预览。如何让ios上也可以直接下载文件
  • 搭建好LNMP环境后,访问服务器上的php文件,居然直接下载而不是解析php文件。 找了好多博客,外行提取到的信息甚浅,跌跌撞撞很久之后终于成功了。 方法:配置nginx.conf文件 在我的服务器上,它的路径是/etc/nginx...
  • 前段时间在项目中遇到文件需要下载直接拿出了之前封装的下载指令,在用的时候发现在下载jpg、txt文件时,并不会直接下载,而是会在浏览器中打开文件,即使给a标签添加了download 属性,也无济于事。 我先把之前...
  • 这个原因就是:打开chrome的设置 => 高级 => 内容设置 => pdf => 就是这个东西,。搞得我好长时间不知道怎么回事。。。阿西吧!!据我所知,火狐也有这种问题。。。 ...
  • 在Postman工具测试下载文件的功能时默认是将文件用文本方式打开,而我们需要的是弹出下载框的方式下载文件。此时需要做一下变动。 解决方案 点击send的按钮旁边的箭头,选择 send and download,就会在发送请求后...
  • 默认情况下,浏览器设定是inline形式,对于服务器返回的文件,能打开打开,不能打开就自动下载。 大多数情况下,后端都是实现一个文件管理的功能,通过文件的唯一标志去获取文件流。后端都会读取文件,然后文件的...
  • 因为公司用的分布式文件系统上传文件后返回的是 http文件路径,当文件是图片是,用a标签下载直接打开而不是下载,所以找了下怎么通过浏览器下载远程服务器上的图片。网上大部分都是后台代码,现在把前端后台一起...
  • 在HTML4.0中直接用标签对文件进行下载,如果不想在浏览器中直接打开,则给标签添加属性download进行下载 比如: <html> <head> <tile>Test</tile> </head> <body> <a ...
  • 通常在咱们写项目的时候会遇到上传下载什么的,在上传完文件后会把文件的路径保存到数据库里以便下载,如果想不通过后台直接下载的话,可以把文件路径给a标签的属性href; &amp;lt;a href=&quot;/user/...
  • ftp不能直接打开word我的电脑不能在ftp上直接打开文件,其在浏览器中输入ftp地址,不能显示文件夹视图。但是可以在资源管理器的地址栏输入地址后打开。打开IE的工具,找到Internet选项。点高级,找到启用FTP文件夹...
  • 有两种方式可以设置默认打开方式: 第一种:右键 py 文件,选择打开方式,找到 idle.bat 这个文件 。    (这个方法有个缺点,就是py文件的显示会不好看) 第二种:修改注册表。   1、win + r 打开,输入 ...
  • 最近接了一个需求,要求用户点击下载按钮后直接下载pdf文件,而不是打开一个新窗口,让用户再去手动保存。 接到需求后我立刻着手在网上查找文档,发现很多声称可以实现直接下载的方法都不行,只有下面这个方法成功...
  • 因为之前是在七牛上操作的,七牛上直接能显示网页内容。 需要给OSS的桶子绑定了域名,使用域名就可以传了。 有点坑额 例子 :http://oss-test.prod-code.com/online/ProductDetailToOss-107855585525848616.html
  • 点击会提供对话框选择另存: response.setHeader( “Content-Disposition ...通过IE浏览器直接选择相关应用程序插件打开: response.setHeader( “Content-Disposition “, “inline;filename= “+fliename) 下
  • 各位大神,我又一个下载,点击下载的时候会提示保存;有没有办法处理让他直接在窗口中打开文件内容。使用js或者第三方框架都可以。
  • 在数据质量中心的需求开发中,需要将测试报告存储在minIO系统上,并记录访问链接,前端获取文件链接后,直接在浏览器中打开html报告。 如以下报告链接...
  • 阿里云的oss,直接上传后,可以访问,直接是打开有一些程序,需要直接能下载设置oss文件的Content-Disposition属性值attachment就是直接打开了但oss有很多文件,不能批量设置现在可以用ossutil批量操作=====原理:...
  • 下载图片类型文件时,会在浏览器中直接打开。 添加Content-Disposition: attachment 响应头无效,图片还是直接打开 添加Content-Disposition: attachment 图片可以下载,但pdf类型文件直接打开 本文将针对以上...
  • 2、安卓用户打开链接后要么直接下载,要么前往手机默认浏览器下载。 以上是最好的实现方式,该实现方式可以使转化率达到最大化。但不尽人意的是微信系统会阻碍用户去使用微信推广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...
  • download="w3logo">浏览器支持IEFirefoxChromeSafariOpera否 是是否否只有 Firefox 和 Chrome 支持 download 属性。HTML 4.01 与 HTML 5 之间的差异在 HTML5 中,download 属性是 标签的新属性。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,089,701
精华内容 835,880
关键字:

下载文件如何设置为直接打开