详解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的header和asp中的redirect比较
Oct 09 PHP
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
Nov 18 PHP
php正则校验用户名介绍
Jul 19 PHP
php URL编码解码函数代码
Mar 10 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
Apr 23 PHP
php限制上传文件类型并保存上传文件的方法
Mar 13 PHP
php专用数组排序类ArraySortUtil用法实例
Apr 03 PHP
php传值赋值和传地址赋值用法实例分析
Jun 20 PHP
php类的定义与继承用法实例
Jul 07 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
Sep 23 PHP
php7函数,声明,返回值等新特性介绍
May 25 PHP
php的命名空间与自动加载实现方法
Aug 25 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利用事务处理转账问题
2015/04/22 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
用于table内容排序
2006/07/21 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
JQuery onload、ready概念介绍及使用方法
2013/04/27 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
Element Dropdown下拉菜单的使用方法
2020/07/26 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
python生成日历实例解析
2014/08/21 Python
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
python读取并写入mat文件的方法
2019/07/12 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
Python实现微信小程序支付功能
2019/07/25 Python
python输出数组中指定元素的所有索引示例
2019/12/06 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
机电专业个人求职信范文
2013/12/30 职场文书
老师给学生的表扬信
2014/01/17 职场文书
幼儿园亲子活动总结
2014/04/26 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书