详解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的正则处理函数总结分析
Jun 20 PHP
PHP form 表单传参明细研究
Jul 17 PHP
javascript,php获取函数参数对象的代码
Feb 03 PHP
图解找出PHP配置文件php.ini的路径的方法
Aug 20 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
Nov 04 PHP
php基于Snoopy解析网页html的方法
Jul 09 PHP
PHP生成各种常见验证码和Ajax验证过程
Jan 10 PHP
php日期操作技巧小结
Jun 25 PHP
Laravle eloquent 多对多模型关联实例详解
Nov 22 PHP
浅析PHP7 的垃圾回收机制
Sep 06 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 PHP
PHPstorm激活码2020年5月13日亲测有效
Sep 17 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获得url参数中具有&的值的方法
2014/03/05 PHP
php选择排序法实现数组排序实例分析
2015/02/16 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
在vue-cli中组件通信的方法
2017/12/16 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
2019/10/24 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
python3实现高效的端口扫描
2019/08/31 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
python使用正则来处理各种匹配问题
2019/12/22 Python
Pytorch实现神经网络的分类方式
2020/01/08 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
学历公证书范本
2014/04/09 职场文书
个人简历自荐信
2014/06/26 职场文书
农村文化活动总结
2014/08/28 职场文书
质量保证书格式模板
2015/02/27 职场文书
爱的教育读书笔记
2015/06/26 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
MySQL 常见存储引擎的优劣
2021/06/02 MySQL