详解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
亲密接触PHP之PHP语法学习笔记1
Dec 17 PHP
mysql下创建字段并设置主键的php代码
May 16 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
Jan 09 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
eAccelerator的安装与使用详解
Jun 13 PHP
使用PHP静态变量当缓存的方法
Nov 13 PHP
php实现执行某一操作时弹出确认、取消对话框
Dec 30 PHP
php cli换行示例
Apr 22 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
Sep 20 PHP
PHP使用file_get_content设置头信息的方法
Feb 14 PHP
解决laravel资源加载路径设置的问题
Oct 14 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中处理模拟rewrite 效果
2006/12/09 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
jQuery.extend 函数的详细用法
2012/06/27 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
jQuery scrollFix滚动定位插件
2015/04/01 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
新入门node.js必须要知道的概念(必看篇)
2016/08/10 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
JS无缝滚动效果实现方法分析
2016/12/21 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
2018/05/22 jQuery
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
vue之组件内监控$store中定义变量的变化详解
2019/11/08 Javascript
详解vue 组件
2020/06/11 Javascript
vue-router 按需加载 component: () => import() 报错的解决
2020/09/22 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
利用python批量检查网站的可用性
2016/09/09 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
python每天定时运行某程序代码
2019/08/16 Python
python框架flask表单实现详解
2019/11/04 Python
python的scipy实现插值的示例代码
2019/11/12 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
宿舍卫生检讨书
2014/01/16 职场文书
《桃花心木》教学反思
2014/02/17 职场文书
差生评语大全
2014/05/04 职场文书
授权委托书(完整版)
2014/09/10 职场文书
会计工作岗位职责
2015/02/03 职场文书
会议通知格式范文
2015/04/15 职场文书
运动会通讯稿50字
2015/07/20 职场文书
2019年最新借条范本!
2019/07/08 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书