详解PHP素材图片上传、下载功能


Posted in PHP onApril 12, 2019

 这里的下载是生成 zip 包进行下载,所以需要 PHP 的ZipArchive ()类,使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释。并且不包括 oss 之类的三方

上传

上传就很简单了,PHP 自带的 move_uploaded_file()函数就可以使用我们简单的文件上传了。

我们只需要把文件的路径存到数据库方便我们下载或展示时使用就 OK了。

这里需要注意上传的路径和文件名尽量不要包括中文。

下载

下载文件我们需要临时生成一个服务器的 zip 包,然后设置请求头最后删除服务器生成的临时 zip 包就 OK 了。下面直接上代码:

$filename = rand(0, 999).'.zip';
$zip = new ZipArchive();
/*
* $zip->open 这个方法的第一参数是要处理的文件名
* 第二个表示处理模式。
* ZipArchive::CREATE,系统会往原来的zip 文件内追加内容
* ZipArchive::OVERWRITE 是防止系统多次添加同一个文件到 zip 中
*/
$zip->open($filename, ZipArchive::CREATE | ZipArchive::OVERWRITE);
// 添加文件内容到zip 文档
$zip->addFromString(/*文件名称*/, /*文件内容*/);

// 设置请求头,下载压缩包,并且删除服务器上的临时 zip 文件
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-length: ".$filename); // 后面要拼接你的zip 文件名
Header("Content-Disposition: attachment; filename=images.zip"); // 这里的 filename 是你要下载的 zip 包的名称

// 一次只传输1024个字节的数据给客户端
$buffer = 1024;
while(!feof($file)) {
 // 将文件读入内存
 $file_data = fread($file, $buffer);
 // 每次向客户端回送1024个字节
 echo $file_data;
}

fclose($file);
unlink($filename); // 删除文件
exit;

以上所述是小编给大家介绍的PHP图片上传下载功能详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
JAVA/JSP学习系列之六
Oct 09 PHP
ASP知识讲座四
Oct 09 PHP
基于Discuz security.inc.php代码的深入分析
Jun 03 PHP
PHP中exec函数和shell_exec函数的区别
Aug 20 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 PHP
PHP结合Ueditor并修改图片上传路径
Oct 16 PHP
PHP内存缓存功能memcached示例
Oct 19 PHP
thinkPHP模板引擎用法示例
Dec 08 PHP
微信公众号OAuth2.0网页授权问题浅析
Jan 21 PHP
php面向对象程序设计入门教程
Jun 22 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
laravel 事件/监听器实例代码
Apr 12 #PHP
Laravel5.7 数据库操作迁移的实现方法
Apr 12 #PHP
laravel使用Faker数据填充的实现方法
Apr 12 #PHP
Laravel5.7 Eloquent ORM快速入门详解
Apr 12 #PHP
laravel 数据迁移与 Eloquent ORM的实现方法
Apr 12 #PHP
PHP中的Iterator迭代对象属性详解
Apr 12 #PHP
PHP中str_split()函数的用法讲解
Apr 11 #PHP
You might like
PHP函数http_build_query使用详解
2014/08/20 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
JavaScript中的闭包
2016/02/24 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
AngularJS 与百度地图的结合实例
2016/10/20 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
推荐几个不错的console调试技巧实现
2019/12/20 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
微信小程序实现购物车小功能
2020/12/30 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
浅谈python中字典append 到list 后值的改变问题
2018/05/04 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
如何基于Python批量下载音乐
2019/11/11 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
用Python 执行cmd命令
2020/12/18 Python
一套Java笔试题
2016/08/20 面试题
正规的求职信范文分享
2013/12/11 职场文书
小学运动会表扬稿
2014/01/19 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
小小的船教学反思
2014/02/21 职场文书
初中生考试作弊检讨书
2014/12/14 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书