文件下载工具

public class DownFileUtile {//str为文件的下载地址
    public static Logger logger = Logger.getLogger(DownFileUtile.class);
    public static void downLoad(String str, HttpServletRequest request, HttpServletResponse response){
        String extName = str.substring(str.lastIndexOf(".") + 1);
        String oldName = UUID.randomUUID().toString().replace("-","");
        String fileName =oldName+"."+extName;
        try {
            URL url = new URL(str);
            InputStream is = url.openStream();
            response.setContentType("application/doc");
            final String userAgent = request.getHeader("USER-AGENT");
            if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器
                fileName = URLEncoder.encode(fileName,"UTF-8");
            }else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
                fileName = new String(fileName.getBytes(), "ISO8859-1");
            }else{
                fileName = URLEncoder.encode(fileName,"UTF-8");//其他浏览器
            }
            response.addHeader("Content-Disposition", "attachment;filename=" +fileName);//这里设置一下让浏览器弹出下载提示框,而不是直接在浏览器中打开
            ServletOutputStream os = response.getOutputStream();
            byte[] car = new byte[2048];
            int L;
            while((L = is.read(car)) != -1){
                if (car.length!=0){
                    os.write(car, 0,L);
                }
            }
            if(os!=null){
                os.flush();
                os.close();
            }
        } catch (Exception e) {
            logger.info("下载文件失败:"+e.getMessage());
        }
    }
}

原文地址:https://www.cnblogs.com/appc/p/9104155.html

时间: 2024-10-29 14:00:34

文件下载工具的相关文章

《自拍教程22》wget_文件下载工具

wget用途介绍 日常测试过程中,我们可以用wget命令,来下载一些资源文件. wget是一个很好文件下载命令, Linux操作系统下,自带wget命令. Windows操作系统下,需要自己去下载并配置环境变量. Windows版下载地址 https://wget.en.softonic.com/download 下载完后,请把wget.exe所在路径,添加到某个Path环境变量了去. 常用参数(暂只列出针对测试人员的常见参数) wget + url: 下载文件 wget http://www.

文件下载工具类

先依赖 compile 'com.liulishuo.filedownloader:library:1.3.0' import android.content.Context; import com.hyphenate.chat.EMMessage; import com.liulishuo.filedownloader.BaseDownloadTask; import com.liulishuo.filedownloader.FileDownloadListener; import com.l

wget文件下载工具

1.安装: centos7默认没有安装,使用yum安装: yum -y install wget 2.参数: 2.1 启动参数 -V,–version:显示版本号 -h,–help:查看帮助 -b,–background:启动后转入后台执行 2.2 日志记录和输入文件参数 -o,–output-file=file:把记录写到file文件中 -a,–append-output=file:把记录追加到file文件中 -i,–input-file=file:从file读取url来下载 2.3 下载参数

Linux工具集合之aria2-axel-curl-wget用法

================ axel 支持续下载多线程============ Axel,是 Linux 下一款不错的 HTTP 或 FTP 高速下载工具.支持多线程下载.断点续传,且可以从多个地址或者从一个地址的多个连接来下载同一个文件,适合网速不给力时多线程下载以提高下载速度.需要注意的是,该软件只有命令行界面. 1,下载地址:http://yunpan.cn/cjIydRLZcUxVX  访问密码 8ab7 也可以根据自己系统版本去官网下:http://pkgs.repoforge.

linux工具之curl与wget高级使用

1.curl(文件传输工具) 常用参数如下: -c,--cookie-jar:将cookie写入到文件 -b,--cookie:从文件中读取cookie -C,--continue-at:断点续传 -d,--data:http post方式传送数据 -D,--dump-header:把header信息写入到文件 -F,--from:模拟http表达提交数据 -s,--slient:减少输出信息 -o,--output:将信息输出到文件 -O,--remote-name:按照服务器上的文件名,存在

命令行视频下载工具you-get和youtube-dl

you-get和youtube-dl都是基于python的命令行媒体文件下载工具,完全开源免费跨平台.用户只需使用简单命令并提供在线视频的网页地址即可让程序自动进行嗅探.下载.合并.命名和清理,最终得到已经命名的完整视频文件.两者搭配使用几乎可以下载所有主流视频网站的视频及有关资源,配合本地播放器还可直接播放在线视频,彻底避免广告和浏览器插件的困扰. 在安装使用之前需要进行以下部署工作: 安装python3和pip 安装媒体处理工具FFmpeg you-get 官网:https://you-ge

wget-文件下载工具

阅读目录:详解wget命令-文件下载工具 安装wget 命令格式 命令功能 参数指南 启动参数 记录和输入文件参数 下载参数 目录参数 http选项参数 ftp选项参数 递归下载参数 递归下载中的包含和不包含(accept/reject) 使用实例--很重要!! wget是Linux系统中的一个下载文件的工具,用在命令行下.用于下载一些软件或从远程服务器恢复备份到本地服务器.(不能下载目录) wget的优点: wget 非常稳定,在带宽很窄的情况下和不稳定网络中有很强的适应性: ①如果是由于网络

JavaWeb响应下载(包含工具类)

纸上得来终觉浅,绝知此事要躬行!今天博主分享是关于javaweb的响应(response)下载 以下是我的Demo: 页面我就粘主要部分的代码 <a href = "${pageContext.request.contextPath }/user/courseTab">模板下载</a> 当然,现在的项目大家都使用框架,这里我使用的是(SSM),好了,粘代码 @Controller @RequestMapping("/user") public

Java Web文件下载

Web文件下载有两种,一种是文件在网站目录下,在浏览器中直接输入文件路径即可下载,如http://www.xxx.com/file.zip.另外一种是文件不在网站目录下或者文件是动态生成的(导出报表或者导出excel等),这种情况需要通过response的OutputStream实现文件的下载.DownloadUtils是一个Java Web文件下载工具类,提供多种静态方法实现文件下载. package com.rhui.util; import java.io.BufferedInputStr