详解PHP素材图片上传、下载功能
时间:2022-07-27
本文章向大家介绍详解PHP素材图片上传、下载功能,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
这里的下载是生成 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;
- dubbo/dubbox 增加原生thrift及avro支持
- Hadoop(十四)MapReduce原理分析
- dubbox 增加google-gprc/protobuf支持
- 统计02:怎样描绘数据
- ActiveMQ笔记(1):编译、安装、示例代码
- centos ssh终端下高亮显示git分支名
- Django ORM模型:想说爱你不容易
- IE7下元素的 'padding-top' 遇到 'clear' 特性在某些情况下复制到 'padding-bottom'
- IE7下元素的 'padding-top' 遇到 'clear' 特性在某些情况下复制到 'padding-bottom'
- ARM处理器:开放者的逆袭
- 从5个方面对比微信小程序和App
- ActiveMQ笔记(7):如何清理无效的延时消息?
- JS魔法堂:再识Bitwise Operation & Bitwise Shift
- Hadoop(十三)分析MapReduce程序
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 56. Vue原生js的组件拆分结构设计
- 一步一步教你把 Redux Saga 添加到 React&Redux 程序中
- Octave的基本语句及函数的使用入门—ML Note 31
- JAVA的Lock锁接口实现
- 抽象语法树为什么抽象
- burpsuite IP伪造插件
- 用阻塞队列,再系一次鞋带
- I2C总线架构 之 设备驱动
- kail 安装及卸载 docker【亲测可用】
- mac 登录远程服务器(常规ssh+免密快捷方式)
- git常用操作--分支同步master 本地库提交到远程分支
- mac苹果 配置maven settings文件【注意,与win环境不一样!!!】
- mac小程序开发 本地调试 安装 npm modules
- Deeplearning.ai 课程笔记第一部分:神经网络与深度学习
- 如何从Node.js开始-Visual Studio2017