在做微信的图片上传的时候,发现上传的是临时素材,我们需要从微信服务器下载图片并保存到本地,所以涉及的就是通过链接下载文件并保存到本地的方法。

通过url下载的过程有如下几步:

(1)客户端发起一个url请求,获取连接对象。

(2)服务器解析url,并且将指定的资源返回一个输入流给客户。

(3)建立存储的目录以及保存的文件名。

(4)输出了写数据。

(5)关闭输入流和输出流

完整代码:

/*** @功能 下载临时素材接口* @param filePath 文件将要保存的目录* @param method 请求方法,包括POST和GET* @param url 请求的路径* @return*/public static String saveUrlAs(String url,String filePath,String method) throws Exception {//System.out.println("fileName---->"+filePath);//创建不同的文件夹目录File file=new File(filePath);//判断文件夹是否存在if (!file.exists()){//如果文件夹不存在,则创建新的的文件夹file.mkdirs();}FileOutputStream fileOut = null;HttpURLConnection conn = null;InputStream inputStream = null;String savePath = null ;try{// 建立链接URL httpUrl=new URL(url);conn=(HttpURLConnection) httpUrl.openConnection();//以Post方式提交表单,默认get方式conn.setRequestMethod(method);conn.setDoInput(true);conn.setDoOutput(true);// post方式不能使用缓存conn.setUseCaches(false);//连接指定的资源conn.connect();//获取网络输入流inputStream=conn.getInputStream();BufferedInputStream bis = new BufferedInputStream(inputStream);//判断文件的保存路径后面是否以/结尾if (!filePath.endsWith("/")) {filePath += "/";}String filePathDir =  DateUtil.getStringAllDate();//写入到文件(注意文件保存路径的后面一定要加上文件的名称)savePath = filePath+filePathDir+".png";fileOut = new FileOutputStream(savePath);BufferedOutputStream bos = new BufferedOutputStream(fileOut);byte[] buf = new byte[4096];int length = bis.read(buf);//保存文件while(length != -1){bos.write(buf, 0, length);length = bis.read(buf);}bos.close();bis.close();conn.disconnect();} catch (Exception e){e.printStackTrace();throw new  Exception(e.getMessage());}return savePath;}

传入的filePath是路径名,加上后面的filePathDir+".png" 获得的 savePath是文件保存地址

通过链接下载文件并保存到本地相关推荐

  1. java 服务器 文件写入文件_java 从服务器下载文件并保存到本地

    昨天在做一个项目时,用到了从服务器上下载文件并保存到本地的知识,以前也没有接触过,昨天搞了一天,这个小功能实现了,下面就简单的说一下实现过程: 1.基础知识 当我们想要下载网站上的某个资源时,我们会获 ...

  2. vue中下载文件导出保存到本地

    vue中下载文件导出保存到本地 先分析如何下载:先有一个链接地址,然后使用 location.href或window.open()下载到本地 看看返回数据 res.config.url 中是下载链接地 ...

  3. cocos creator 安卓原生平台环境_cocos creator原生平台下载文件并保存到本地

    网上没有找到相关的文章,写下来自己记一下 直接上代码:downFile2Local:function(url, fileName, callback){ var fullPath = jsb.file ...

  4. python下载网页上的文件_用Python下载一个网页保存为本地的HTML文件实例

    Python打开网页并另存为静态html怎么实现 如何用python把网页上的文本内容保存下来那一世的长情,谱一首长相思,冷了多少凄凉,漫了多少青丝,化作多少烟雨,吹散多少世间情!徒悲,奈何,这一世, ...

  5. 如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...

    我们可以用Python来将一个网页保存为本地的HTML文件,这需要用到urllib库. 比如我们要下载山东大学新闻网的一个页面,该网页如下: 实现代码如下: import urllib.request ...

  6. 怎么在python下载网站内容-用Python下载一个网页保存为本地的HTML文件实例

    我们可以用Python来将一个网页保存为本地的HTML文件,这需要用到urllib库. 比如我们要下载山东大学新闻网的一个页面,该网页如下: 实现代码如下: import urllib.request ...

  7. U3d—通过CRL下载文件并保存本地___#三分有点码#专栏

    U3d-通过CRL下载文件并保存本地三分有点码. void Start(){string path = Application.persistentDataPath + "/" + ...

  8. php完美实现下载远程图片保存到本地(保存微信头像)

    2019独角兽企业重金招聘Python工程师标准>>> /** * php完美实现下载远程图片保存到本地 * @param: 文件url,保存文件目录,保存文件名称,使用的下载方式 ...

  9. HTML a链接下载文件之图片,文件,乱码等问题

    我们在做需求的时候,经常会遇到下载文件 前端下载文件一般分为两种方式: 使用 a 链接进行下载: <a herf="url" >下载</a> 向后端发送请求 ...

  10. Python 从 Excel 读取链接下载文件

    Python 从 Excel 读取链接下载文件 import os from urllib.parse import urljoin, quote, unquoteimport requests im ...

最新文章

  1. php可以打印一个页面,利用html实现分页打印功能的实例详解
  2. Java面试中最高频的那20%知识点是什么?
  3. texture android,Android OpenGL结合了SurfaceTexture(外部图像)和普...
  4. android studio中能用的各种转义字符
  5. DIV CSS left right top bottom定位
  6. AutoML大提速,谷歌开源自动化寻找最优ML模型新平台Model Search
  7. 通用的MIME类型:application/octet-stream
  8. php 函数 数组 难学,php 数组的常用函数
  9. python在数字后添加字符_Python在字符前后补字符
  10. Python高级爬虫实战,JS解密咪咕音乐登录参数分析
  11. 【离散数学·图论】关于哈密顿图的判别条件总结
  12. JS对象转JSON转数组
  13. 电阻的寄生电感、寄生电容
  14. urp教务系统简单利用
  15. C++中的back_inserter
  16. NEON Intrinsics 练习题
  17. Android 模仿淘宝历史记录,记录存在手机内
  18. MySQL查看当前数据库
  19. Android Study
  20. educoder/python第1关:学习-Python集合之应用一

热门文章

  1. oracle client 客户端 安装 oracle客户端安装
  2. win10如何安装系统得日语输入法(亲测)
  3. Android官方开发文档下载
  4. 多个Gbase集群间表同步思路
  5. c# chart 各个属性_C#之Chart控件系列教程
  6. php 死链查询,网站最新死链查询和处理方法
  7. 西部数据移动硬盘真伪测试软件,如何查询西数移动硬盘的真伪
  8. 一文讲透项目管理的价值和意义到底是什么?
  9. 仿饿了么微外卖系统php,【外卖小程序】仿美团外卖源码 版本号v1.7 – 亲测可用 饿了么小程序 外卖小程序...
  10. Swagger怎么下载文件