-
根据URL下载文件/图片
2018-05-11 11:41:16根据URL下载文件、图片的方法 1、应用场景:远程文档服务器返回json结果,内容包括文件名称,文件路径,文件类型等信息,使用流(InputStream),通过文件路径去下载文件、图片。 远程文档服务器返回json结果如下图...根据URL下载文件、图片的方法
1、应用场景:远程文档服务器返回json结果,内容包括文件名称,文件路径,文件类型等信息,使用流(InputStream),通过文件路径去下载文件、图片。
远程文档服务器返回json结果如下图:
2、应用方法:
先将返回的结果(代码中的fileData)进行转换为Map,获取其中key为data的数据,如文件名,文件路径信息,然后设置请求头信息,需设置:
ContentType:multipart/form-data
Content-Disposition:attachment; filename="xxx.xx"
然后根据文件路径创建URL对象,在根据URL对象打开输入流InputStream,然后在使用OutputStream流输出;
3、特别注意:
因为文件名称可能为中文,所以需要进行转码,否则会乱码,这里会将中文替换为下划线_ 如下图所示:
这里要特别注意,文件名称编码格式不能使用UTF-8/GBK,需使用ISO-8859-1格式:
new String(fileName.getBytes(),"iso-8859-1");
下载的方法代码如下:
/** * 通过URL下载文件 * * @param fileData * @throws IOException */ public static void downloadWithUrl(String fileData, HttpServletResponse response) throws IOException { ObjectMapper om = new ObjectMapper(); Map<String, Object> map = om.readValue(fileData, Map.class); Map<String, Object> data = ((List<Map<String, Object>>) map.get("data")).get(0); String fileName = (String) data.get("file_name"); String path = (String) data.get("file_path"); //设置响应参数 response.setCharacterEncoding("UTF-8"); response.setContentType("multipart/form-data"); // response.setHeader("Content-Disposition", " attachment; filename=" + fileName);//使用此会导致中文变“_”下划线 response.setHeader("Content-Disposition", " attachment; filename=" + new String(fileName.getBytes(), "iso-8859-1")); InputStream is = null; BufferedOutputStream outs = null; try { //创建数据流,执行下载 URL url = new URL(path); is = url.openStream(); outs = new BufferedOutputStream(response.getOutputStream()); byte[] bytes = IOUtils.toByteArray(is); outs.write(bytes); } finally { if (null != outs) outs.close(); if (null != is) is.close(); } }
-
通过路径下载文件和通过url下载文件
2019-08-15 11:19:161:通过url请求下载文件 2:从服务器的路径拿到文件 1:通过url请求下载文件 /** * URL * 类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。 * 抓取文件:以下载一张图片为例 * 1、创建URL对象 ...目录
1:通过url请求下载文件
/** * URL * 类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。 * 抓取文件:以下载一张图片为例 * 1、创建URL对象 指定文件的URL地址(图片的URL地址) * 2、获取远程连接的对象 * 3、设置获取方式,一般用到GET、POST方式 * 4、获取HTTP响应的状态码 200表示请求成功 * 5、字节输入流 读取文件 * 6、字节输出流 把读取的文件存入本地 * @author hw * */ --------------------- public class TestDowload { public static void main(String[] args) { BufferedInputStream bufferedInputStream = null; BufferedOutputStream bufferedOutputStream = null; try { URL url = new URL("https://e-cloudstore.com/files/ecology_dev.zip"); HttpURLConnection conn=(HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); //设置URL请求方式 GET方式 conn.setRequestMethod("GET"); //从HTTP响应消息获取状态码 int code=conn.getResponseCode(); //如果状态码为200表示请求成功 if(code ==200){ bufferedInputStream = new BufferedInputStream(conn.getInputStream()); bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("D://ecology_dev.zip")); byte[] by=new byte[1024]; int len=0; while((len=bufferedInputStream.read(by))!=-1) { bufferedOutputStream.write(by, 0, len); //刷新 bufferedOutputStream.flush(); } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { bufferedInputStream.close(); bufferedOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }
2:从服务器的路径拿到文件
public class TestDowload { public static void main(String[] args) { FileInputStream fileInputStream = null; BufferedInputStream bufferedInputStream = null; FileOutputStream fileOutputStream = null; BufferedOutputStream bufferedOutputStream = null; try { fileInputStream = new FileInputStream(new File("d://xxx.txt")); bufferedInputStream = new BufferedInputStream(fileInputStream); fileOutputStream = new FileOutputStream(new File("D:/开发文档/txt")); bufferedOutputStream = new BufferedOutputStream(fileOutputStream); int tag; while ((tag = (bufferedInputStream.read())) != -1) { bufferedOutputStream.write(tag); } bufferedOutputStream.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (fileInputStream!=null){ try { fileInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if (fileOutputStream!=null){ try { fileOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if (bufferedInputStream!=null){ try { bufferedInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if (bufferedOutputStream!=null){ try { bufferedOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
-
根据url下载文件(JAVA实现)
2020-06-17 11:38:581)根据url下载文件 2)情况:由于在线浏览某个文件过大(日志文件),导致浏览器直接加载奔溃,因此想通过程序,将文件下载下来查看 3)代码: import java.io.BufferedInputStream; import java.io....1)根据url下载文件
2)情况:由于在线浏览某个文件过大(日志文件),导致浏览器直接加载奔溃,因此想通过程序,将文件下载下来查看
3)代码:
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public class DownloadTest { /** * * @Title: getImg * @Description: 通过一个url 去获取图片 * @param @param url 图片的连接地址 * @param @throws IOException * @throws */ public static void getImg(String url) throws IOException{ long startTime = System.currentTimeMillis(); URL imgURL = new URL(url.trim());//转换URL HttpURLConnection urlConn = (HttpURLConnection) imgURL.openConnection();//构造连接 urlConn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36"); urlConn.connect(); System.out.println(DownloadTest.class.toString()+":获取连接="+urlConn.getResponseMessage()); if(urlConn.getResponseCode()==200){//返回的状态码是200 表示成功 InputStream ins = urlConn.getInputStream(); //获取输入流,从网站读取数据到 内存中 OutputStream out = new BufferedOutputStream(new FileOutputStream(new File("tomcat6-stdout.2020-06-13.log"))); int len=0; byte[] buff = new byte[1024*10];//10k缓冲流 视你内存大小而定咯 while(-1!=(len=(new BufferedInputStream(ins)).read(buff))){//长度保存到len,内容放入到 buff out.write(buff, 0, len);//将图片数组内容写入到图片文件 } urlConn.disconnect(); ins.close(); out.close(); System.out.println(DownloadTest.class.toString()+":获取图片完成,耗时="+((System.currentTimeMillis()-startTime)/1000)+"s"); } } /** * @throws IOException * @Title: main * @Description: 测试方法 * @throws */ public static void main(String[] args) throws IOException { DownloadTest.getImg("http://192.168.84.10/99170/80/tomcat6-stdout.2020-06-13.log");// } }
-
Linux wget 从指定的URL下载文件
2018-04-22 18:52:47wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会...wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。
语法:
wget(选项)(参数) ------->例:wget url
选项:
-a<日志文件>:在指定的日志文件中记录资料的执行过程; -A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔; -b:进行后台的方式运行wget; -B<连接地址>:设置参考的连接地址的基地地址; -c:继续执行上次终端的任务; -C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on; -d:调试模式运行指令; -D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔; -e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令; -h:显示指令帮助信息; -i<文件>:从指定文件获取要下载的URL地址; -l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔; -L:仅顺着关联的连接; -r:递归下载方式; -nc:文件存在时,下载文件不覆盖原有文件; -nv:下载时只显示更新和出错信息,不显示指令的详细执行过程; -q:不显示指令执行过程; -nh:不查询主机名称; -v:显示详细执行过程; -V:显示版本信息; --passive-ftp:使用被动模式PASV连接FTP服务器; --follow-ftp:从HTML文件中下载FTP连接文件。
-
通过URL下载文件
2017-09-05 16:17:47//fileRoute:文件URL路径 //通过URL的openStrean方法获取URL对象所表示的自愿字节输入流 InputStream is = url.openStream(); // 设置response参数,可以打开下载页面 response.reset(); String mimeType = ... -
win10如何使用命令行通过URL下载文件?
2018-12-16 15:12:54win10如何使用命令行通过URL下载文件? 1.启动powershell 启动powershell有多种方法,介绍两种: 方法一 快捷键win+R,输入powershell,启动powershell 方法二 进入cmd命令行,输入powershell,启动... -
JAVA--根据Url下载文件数据(输出Base64)
2020-08-18 00:35:03JAVA–根据Url下载文件数据(输出Base64) public static String downloadImg(String url){ try{ System.out.print(“开始下载”+url+“资源\n”); URL uploadUrl = new URL(url); HttpURLConnection httpUrl = ... -
Java 从指定URL下载文件并保存到指定目录
2019-09-16 11:19:04Java从指定URL下载文件并保存到指定目录代码实现测试代码 做爬虫功能时候,经常需要通过url将文件保存到本地。网上看到不少例子,代码都比较繁杂,需要自己读取文件流并输出流到文件。在这里,我们通过API来实现这个... -
Android URL 下载文件
2018-10-12 17:37:44首先需要一个线程。 new Thread(new Runnable() { @Override public void run() { try { URL url = new URL(entity.getUrl()); //打开连接 ... -
java 访问https 从https的url下载文件 从http的url下载文件
2018-07-06 11:22:45import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java... -
通过url下载文件
2018-10-11 10:04:23例如url: ... * 下载模板 * @param url * @param savePath * @return */ @RequestMapping("/downTemplate") @ResponseBody public String down... -
Blob Url下载文件
2019-12-19 15:18:27<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <...点击下载</a> <script> le... -
js通过文件的url下载文件到本地
2019-03-25 15:31:57同源单文件 ... 标签的 download 属性下载文件 const elt = document.createElement('a'); elt.setAttribute('href', url); elt.setAttribute('download', 'file.png'); elt.style.display = 'none'; ... -
java通过URL下载文件
2019-06-20 11:27:59import java.io.File; import java.net.URL; import org.apache.commons.io.FileUtils; public class DownloadURLFile { /** * @param args */ public static void main(St... -
前端通过后端返回文件url下载文件
2020-11-09 17:27:52一般使用windows.open() 也可以实现但是 体验差,windows.open()会打开新的窗口... // 文件下载 downFile () { let a = document.createElement('a') a.href = `使用后端的请求url` // 这里的请求方式为get,如果需 -
JAVA根据HTTPS URL下载文件
2017-12-29 15:02:30/** * TODO 下载文件到本地 * * @param fileUrl 远程地址 * @param fileLocal 本地路径 * @throws Exception */ public static void downloadFile(String fileUrl, String fileLocal , -
URL下载文件服务器文件
2016-08-19 17:30:18前台页面请求: window.location.href = "/download/download?fileUrl=" + data.contractUrl + "&originName=" + data....后台下载处理: import com.alibaba.dubbo.common.utils.StringUtils; import org.slf -
后台根据url下载文件
2018-08-09 11:38:39//前端代码: <a href="<%=basePath %&...//后台根据前台提交的url地址进行文件下载 后端代码: @RequestMapping("/download") public void downLoad(HttpServletRequ.. -
java 访问https 从https的url下载文件 从http的url下载文件(转)
2019-11-01 14:35:46package ... import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import jav... -
js通过URL下载文件
2018-09-17 13:39:09var url // 会打开一个空白页下载,然后空白页消失,用户体验不好 function download1() { window.open(url); } // 直接下载,用户体验好 function download2() { var $form = $('<form metho... -
HttpClient实现通过url下载文件
2019-07-14 22:40:00其实就是通过浏览器url,点击就会下载文件。 这里是从代码层面上,对文件进行下载。 package main.java.com.abp.util; import org.apache.http.*; import org.apache.http.client.HttpClient; import org.... -
C#根据url下载文件
2020-06-03 15:38:34 -
防止通过URL下载文件
2014-07-09 18:00:00网页中向用户提供了ppt文件的下载功能,前提是只有登录的用户才能下载,所以需要禁止通过URL对文件进行下载。 自己定义一个文件下载类。 using System; using System.Data; using System.Configuration; ... -
Jfinal根据url下载文件
2018-01-06 09:19:14String path = (PathKit.getWebRootPath()+"/exclemodel/").replace("\\", "/"); URL httpurl = new URL("***"); String fileName = "*.xlsx"; File f = new File(path -
jq及html通过url下载文件
2017-12-12 20:22:32a href="url 302到下载地址" download>下载</a> 例如: var link = document.createElement('a'); link.setAttribute("download", ""); link.href = data.fileUrl; link.click(); 二、通过form表...
收藏数
21,979
精华内容
8,791