详解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 相关文章推荐
NT IIS下用ODBC连接数据库
Oct 09 PHP
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
Mar 06 PHP
PHP 模拟登陆MSN并获得用户信息
May 16 PHP
PHP中通过语义URL防止网站被攻击的方法分享
Sep 08 PHP
php的array_multisort()使用方法介绍
May 16 PHP
用php简单实现加减乘除计算器
Jan 06 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
Mar 12 PHP
php目录拷贝实现方法
Jul 10 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 PHP
解决php扩展安装不生效问题
Oct 25 PHP
基于php+MySql实现学生信息管理系统实例
Aug 04 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执行速度全攻略(上)
2006/10/09 PHP
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
JavaScript this调用规则说明
2010/03/08 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
JavaScript实现随机点名小程序
2020/10/29 Javascript
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
python入门基础之用户输入与模块初认识
2016/11/14 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
Python函数返回不定数量的值方法
2019/01/22 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
计算机大学生的自我评价
2013/10/15 职场文书
办公室主任职责范本
2014/03/07 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
美丽心灵观后感
2015/06/01 职场文书
房屋所有权证明
2015/06/19 职场文书
小学思想品德教学反思
2016/02/24 职场文书
节约用水广告语60条
2019/11/14 职场文书
字节飞书面试promise.all实现示例
2022/06/16 Javascript