http-https php文件下载
http:
function httpDownload($url, $path = '', $filename = '', $timeout = 60,$type = 0)
{
if ($url == '') {
return false;
}
//获取远程文件数据
if ($type === 0) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);//最长执行时间
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);//最长等待时间
$file = curl_exec($ch);
curl_close($ch);
}
if ($type === 1) {
ob_start();
readfile($url);
$file = ob_get_contents();
ob_end_clean();
}
if ($type === 2) {
$file = file_get_contents($url);
}
//判断下载的数据 是否为空 下载超时问题
if (empty($file)) {
throw new \Exception("下载错误,无法获取下载文件!");
} //没有指定路径则默认当前路径
if ($path === '') {
$path = "./";
}
//如果命名为空
if ($filename === "") {
$filename = md5($file);
}
//获取后缀名
$ext = substr($url, strrpos($url, '.'));
if ($ext && strlen($ext) < 5) {
$filename .= $ext;
} //防止"/"没有添加
$path = rtrim($path, "/") . "/";
//var_dump($path.$filename);die();
$fp2 = @fopen($path . $filename, 'a'); fwrite($fp2, $file);
fclose($fp2);
//echo "finish";
return $filename;
}
https:
function httpsDownload($url, $path = '', $filename = '', $timeout = 60, $type = 0)
{
if ($url == '') {
return false;
}
//获取远程文件数据
if ($type === 0) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);//最长执行时间
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);//最长等待时间
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, false); $file = curl_exec($ch);
curl_close($ch);
}
if ($type === 1) {
ob_start();
readfile($url);
$file = ob_get_contents();
ob_end_clean();
}
if ($type === 2) {
$file = file_get_contents($url);
}
//判断下载的数据 是否为空 下载超时问题
if (empty($file)) {
throw new \Exception("下载错误,无法获取下载文件!");
} //没有指定路径则默认当前路径
if ($path === '') {
$path = "./";
}
//如果命名为空
if ($filename === "") {
$filename = md5($file);
}
//获取后缀名
$ext = substr($url, strrpos($url, '.'));
if ($ext && strlen($ext) < 5) {
$filename .= $ext;
} //防止"/"没有添加
$path = rtrim($path, "/") . "/";
//var_dump($path.$filename);die();
$fp2 = @fopen($path . $filename, 'a'); fwrite($fp2, $file);
fclose($fp2);
//echo "finish";
return $filename;
}
http-https php文件下载的更多相关文章
- JavaScript多文件下载
对于文件的下载,可以说是一个十分常见的话题,前端的很多项目中都会有这样的需求,比如 highChart 统计图的导出,在线图片编辑中的图片保存,在线代码编辑的代码导出等等.而很多时候,我们只给了一个链 ...
- php提供更快的文件下载
在微博上偶然看到一篇介绍php更快下载文件的方法,其实就是利用web服务器的xsendfile特性,鸟哥的博客中只说了apache的实现方式,我找到了介绍nginx实现方式的文章,整理一下! let' ...
- 【SFTP】使用Jsch实现Sftp文件下载-支持断点续传和进程监控
参考上篇文章: <[SFTP]使用Jsch实现Sftp文件下载-支持断点续传和进程监控>:http://www.cnblogs.com/ssslinppp/p/6248763.html ...
- 开源安卓Http文件下载框架file-downloader的使用
file-downloader FileDownloader(https://github.com/wlfcolin/file-downloader)是本人开源的一个安卓Http文件下载框架,是根据自 ...
- ubuntu 14.04 https 形式安装docker 私有库 harbor
起始目录/root,root 登陆后,直接在该目录进行下面的命令 下载harbor 预编译包 0.4.5 准备通过域名 reg.server.com 来访问镜像库所以需要在/etc/hosts 文件中 ...
- Qt 之 使用 https发送 HTTP请求(使用OPENSSL库)
一.简述 在使用Qt发送HTTP请求中一般使用的链接都是http://前缀,而有的服务器支持 https://前缀的链接,而Qt本身是支持https的,但是https访问需要用到SSL认证,而QT默认 ...
- Android Https
/** * HttpUrlConnection支持所有Https免验证,不建议使用 * * @throws KeyManagementException * @throws NoSuchAlgorit ...
- [iOS 多线程 & 网络 - 2.4] - 大文件下载 (边下边写/暂停恢复下载/压缩解压zip/多线程下载)
A.需求 边下边写入硬盘 显示下载进度 暂停/恢复 下载 解压文件 多线程下载 B.基本知识 1.小文件下载 如果文件比较小,下载方式会比较多直接用NSData的+ (id)dataWithCon ...
- android webview 访问https页面 SslError 处理
在Android中,WebView可以用来加载http和https网页到本地应用的控件.但是在默认情况下,通过loadUrl(String url)方法,可以顺利loadUrl(“http://www ...
- 通过NSURLProtocol拦截HTTP转HTTPS来整合SPDY的记录
众所周知,iOS 9.0之后苹果引入ATS限制,苹果也推荐尽量不要使用HTTP通讯了,毕竟是很不安全的.而国内各个有(wu)节操的运营商也会经常篡改请求HTTP请求.所以如果可能,在不影响性能的情况下 ...
随机推荐
- Redis与Java的链接Jedis(二)
就像jdbc跟java链接数据库一样 redis跟java链接最好的工具就是Jedis 相关资源下载:https://github.com/xetorthio/jedis 正常建立java项目, 导入 ...
- python可视化
1.折线图 import matplotlib.pyplot as plt x = [1,2,3,4,5] squares = [1,4,9,16,25] plt.plot(x,squares) pl ...
- win7 iis7 ftp配置
1.安装ftp服务器 开始菜单找到控制面板>在左侧找到打开或关闭windows功能点击 弹出如下对话框, 在弹出的对话框中找到Internet信息服务,如下 然后如上图所示,选中ftp服务器复选 ...
- css3系列之animation
在上次博文中已经讲了transition,其实animation与transition功能相同,都是通过改变元素 的属性来实现动画效果的.但是它们也有区别:transition是只能通过改变指定属性的 ...
- Alpha冲刺 - (9/10)
Part.1 开篇 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Part.2 成员汇报 组员1(组长)柯奇豪 过去两天完成了哪些任务 进一步优化代码,结合自己负责的部分修 ...
- Apache网站服务
Apache 下载地址: http://mirror.bit.edu.cn/apache/httpd/相关软件下载地址:http://mirror.bjtu.edu.cn/apache/apr/apr ...
- delphi Form显示先后问题
- sonar资料
看过的sonar比较好的在线参考资料(自认为): 1.<使用 Sonar 进行代码质量管理>>,地址:http://www.ibm.com/developerworks/cn/jav ...
- 反射:获取Class对象的三种方式
获取Class对象的三种方式 package lianxiApril18; /** * 获取Class对象的三种方式 * 1 Object ——> getClass(); * 2 任何数据类型( ...
- 构建针对 iOS 和 Android 的原生扩展
第一部分:音量控制入门 http://www.adobe.com/cn/devnet/air/articles/building-ane-ios-android-pt1.html 第二部分: 开发 A ...