dedecms 目录生成(dedecms实现自动打包文章中图片并下载的方法)
类别:CMS系统 浏览量:2867
时间:2022-03-28 09:01:17 dedecms 目录生成
dedecms实现自动打包文章中图片并下载的方法本文实例讲述了dedecms实现自动打包文章中图片并下载的方法。分享给大家供大家参考。具体分析如下:
自己几年前的QQ图片网站所有的内容是直接复制上去了,这样我们现在提供了下载功能,但是当时并没有下载地址了,这样我们研究了一个可以自动当用户点击下载时再把当前文章中的图片利用ZipArchive压缩并实现下载,下面来看示例代码,代码如下:
$conn = mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd) ;//or die(mysql_error());
mysql_select_db($cfg_dbname,$conn);
mysql_query("set Names '$cfg_db_language'");
$id = intval(isset($_GET['id'])?$_GET['id']:0);
if( $id )
{
$zipUrl = 'uploads/zip/'.$id.'.zip';
if( file_exists($zipUrl) ) //判断文件是否存在
{
echo '<script language="javascript">location.href="'.$zipUrl.'";</script>';
exit;
}
else
{
$sql ="select url from ".$cfg_dbprefix."uploads where arcid=$id";
$query = mysql_query( $sql );// or die(mysql_error());
if( mysql_num_rows( $query ) )
{
$array = array();
while( $rs = mysql_fetch_array( $query ) )
{
$array[] = substr($rs['url'],1,strlen($rs['url'])-1);
}
//print_r($array);
create_zip($array, $zipUrl, true); //在这里创建压缩文件
echo '<script language="javascript">location.href="'.$zipUrl.'";</script>'; //创建好了再下载
exit;
}
else
{
echo '参数错误';
exit;
}
}
}
else
{
echo '参数错误';
exit;
}
//查询数据表 </p> <p>/*创建一个zip文件*/
function create_zip($files = array(),$destination = '',$overwrite = false) {
if(file_exists($destination) && !$overwrite){ //检测zip文件是否存在
return false;
}
if(is_array($files)) { //检测文件是否存在
foreach($files as $file) { //循环通过每个文件
if(file_exists($file)) { //确定这个文件存在
$valid_files[] = $file;
}
}
}
if(count($valid_files)) {
$zip = new ZipArchive(); //创建zip文件
if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true){
return false;
}
foreach($valid_files as $file) { //添加文件
$zip->addFile($file,$file);
}
$zip->close();
return file_exists($destination);
} else {
return false;
}
}
前一段代码是连接dedecms数据库然后再进行根据文件ID查找数据并进行压缩了,打包好之后利用js输出就实现了下载,如果下次再下载这个文件就自动调用此文件而不再次打包查找数据库了,这样可以减少服务器负载.
希望本文所述对大家的dedecms建站有所帮助。
您可能感兴趣
- dedecms搜索功能怎么设置详细(DEDECMS 隔行换色以及分组加线修改方法)
- dedecms网站空白(DEDECMS支持中文水印的解决方法)
- dedecms怎么设置翻页(DEDECMS中获取无限栏目子分类的方法)
- dedecms标签怎么调用(dedecms网站栏目增加缩略图的方法)
- dedecms标签怎么用(浅析DedeCMS GBK版安装sphinx全文索引无法查询无结果的解决方法)
- dedecms导航条调用(dede调用其他栏目的文章或者缩略图列表且有分页效果的方法)
- dedecms简短标题(dedecms文章列表实现序列号排序效果实现代码)
- dedecms列表分页无法显示(dedecms 5.6 分页样式代码修改方法)
- dedecms运行环境(织梦dedecms5.7生成首页提示404错误解决办法)
- dedecms点击量(dedecms生成速度超级优化攻略 从50秒20页到0.72秒20页)
- dedecms调用点击数(织梦DEDECMS中显示复制地址,推荐给QQ/MSN上的好友的代码)
- 织梦dedecms开启付费授权(织梦Dedecms设置伪静态详细方法)
- 织梦dedecms建站的核心经验和技巧(dedecms模板安装教程及模板相关知识学习)
- dedecms内容上下篇功能(dedecms按键盘方向键实现上一篇下一篇翻页功能)
- dedecms怎么判断授权(DedeCms模板防盗以及安全设置的一些小技巧)
- dedecms数据库优化(dedecms友情链接flink增加下拉菜单的方法)
- 马来西亚旅游攻略(马来西亚旅游攻略自由行攻略)
- 缅甸旅游攻略(缅甸旅游攻略必去景点推荐)
- 《庆余年2》新消息,原班人马,肖战特别出演,这才是最好的安排(庆余年2新消息原班人马)
- 宁夏灵武恐龙化石发现始末(宁夏灵武恐龙化石发现始末)
- 到了岁末 临门一脚 节点,天台综合督评会目标直指 全年红(到了岁末临门一脚)
- 寒假余额不满24小时,不如来一场说走就走的亲子阅读之旅(寒假余额不满24小时)
热门推荐
- keydown、keypress、keyup的使用
- mysql超大表加字段(MySQL 大表添加一列的实现)
- mysql8使用技巧(一篇学会MySQL 8.0 ROLE管理)
- html5长按动画效果(HTML5实现移动端弹幕动画效果)
- django表单提交到数据库(Django 表单模型选择框如何使用分组)
- MVC中使用jQuery加载分部视图(PartialView)
- h5获取ios系统版本(详解h5页面在不同ios设备上的问题总结)
- php7.4 废弃功能(浅析PHP7 的垃圾回收机制)
- 虚拟主机无需备案(十大美国免备案虚拟主机空间推荐)
- python list基本操作(Python3中列表list合并的四种方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9