详解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 相关文章推荐
聊天室php&mysql(六)
Oct 09 PHP
基于mysql的论坛(6)
Oct 09 PHP
header导出Excel应用示例
Jan 24 PHP
PHP 导出Excel示例分享
Aug 18 PHP
ThinkPHP中I(),U(),$this->post()等函数用法
Nov 22 PHP
php实现字符串翻转的方法
Mar 27 PHP
php恢复数组的key为数字序列的方法
Apr 28 PHP
php简单日历函数
Oct 28 PHP
PHP7新增运算符用法实例分析
Sep 26 PHP
php实现的网页版剪刀石头布游戏示例
Nov 25 PHP
PHP的mysqli_sqlstate()函数讲解
Jan 23 PHP
Windows服务器中PHP如何安装redis扩展
Sep 27 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
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
在jQuery中 关于json空对象筛选替换
2013/04/15 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
Python计算回文数的方法
2015/03/11 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
python pillow模块使用方法详解
2019/08/30 Python
Python模块 _winreg操作注册表
2020/02/05 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
梅西酒窖:Macy’s Wine Cellar
2018/01/07 全球购物
杰夫·班克斯男士服装网上商店:Jeff Banks
2019/10/24 全球购物
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
医药专业推荐信
2013/11/15 职场文书
应届生新闻编辑求职信
2013/11/19 职场文书
财务会计自荐信范文
2014/02/21 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
大学生暑假实习总结
2015/07/13 职场文书
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA