搜索
系统检测到您的用户名不符合规范:

ThinkPHP获取远程图片并压缩下载

浏览:810 发布日期:2018年12月29日 分类:功能实现 关键字: PHP压缩 下载
ThinkPHP获取远程图片并压缩下载
阿里云搞活动,想要抓紧买:https://promotion.aliyun.com/ntms/act/qwbk.html?userCode=4hy76kwx

控制器代码://导出图片
public function daochu(){
ini_set("memory_limit","-1");
set_time_limit(0);

//导出数据,实际数据可以是从mysql导出
$data = [];
$data[] = ['id'=>1,'name'=>'张三','shouji'=>'15098881234','qq'=>'\'947803117','weixin'=>'zouseu'];
$data[] = ['id'=>2,'name'=>'李四','shouji'=>'15098881234','qq'=>'\'947803117','weixin'=>'zouseu'];


$time = date('YmdHi');
$path = 'upload/images/'.$time;

//如果目标
if (!is_dir($path)){
mkdir($path);
}

//网上找的两张图片,实际应用中可以换成自己需要下载的文件
$arr = [
'https://b-ssl.duitang.com/uploads/item/201311/19/20131119204800_HLkRx.thumb.1900_0.jpeg',
'https://b-ssl.duitang.com/uploads/blog/201401/02/20140102112513_zHitZ.thumb.1000_0.jpeg'
];

//读取图片到服务器目录
foreach ($arr as $val){
$arr = pathinfo($val);

$file = md5($val);
$file = $file.'.'.$arr['extension'];

if (!file_exists($path.'/'.$file)){
$cont = file_get_contents($val);
file_put_contents($path.'/'.$file,$cont);
}
}

//压缩包名称
$file = $time;

//生成压缩包
yasuo($path,$file);

//删除图片
deleteDir($path);
}
控制器中用到的方法代码:/**
* 循环压缩目录文件
* @param $path 文件夹路径
* @param $zip 压缩后zip名字及路径
*/
function addFileToZip($path, $zip)
{
header("Content-type:text/html;charset=gbk");
$arr = scandir($path);
// print_r($arr);die;
$i = 1;
foreach ($arr as $val){
if ($val != "." && $val != "..") {
if (is_dir($path . "/" . $val)) {
addFileToZip($path . "/" . $val, $zip);
} else {
//将文件加入zip对象
$zip->addFile($path . "/" . $val,iconv('utf-8','gbk//ignore',$val));
// $zip->addFile($path . "/" . $val,$val);
}
}
}
return;

}

/**
* 压缩目录
* $file 压缩文件名
* $path 压缩的文件夹路径
*/
function yasuo($path,$file)
{
$zip = new \ZipArchive();
// $username = $_SESSION['adminUser'];
$zipname = $file . '.zip';
$zipPath = $path.'/' . $zipname;
if ($zip->open("$zipPath", \ZipArchive::CREATE) === TRUE) {
addFileToZip($path, $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法
$zip->close(); //关闭处理的zip文件
//设置打包完自动下载
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename=' . $zipname);
header('Content-Length: ' . filesize($zipPath));
readfile($zipPath);
unlink($zipPath);
}
}


/**
* 删除文件夹
*/
function deleteDir($dir)
{
if (!$handle = @opendir($dir)) {
return false;
}
while (false !== ($file = readdir($handle))) {
if ($file !== "." && $file !== "..") { //排除当前目录与父级目录
$file = $dir . '/' . $file;
if (is_dir($file)) {
deleteDir($file);
} else {
@unlink($file);
}
}

}
@rmdir($dir);
}
需要完整代码,请加群:282882201,在群文件中下载。

阿里云搞活动,想要抓紧买:https://promotion.aliyun.com/ntms/act/qwbk.html?userCode=4hy76kwx
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
zonseu
积分:1726 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /