详解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桌面中心(三) 修改数据库
Mar 11 PHP
PHP 引用文件技巧
Mar 02 PHP
PHP开发中常用的字符串操作函数
Feb 08 PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 PHP
PHP eval函数使用介绍
Dec 08 PHP
PHP中的按位与和按位或操作示例
Jan 27 PHP
php邮箱地址正则表达式验证
Nov 13 PHP
PHP 闭包详解及实例代码
Sep 28 PHP
Yii框架分页技术实例分析
Aug 30 PHP
Laravel Eloquent ORM 多条件查询的例子
Oct 10 PHP
在Laravel中使用MongoDB的方法示例
Nov 11 PHP
thinkphp诸多限制条件下如何getshell详解
Dec 09 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
星际争霸任务指南——神族
2020/03/04 星际争霸
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
javascript radio 联动效果
2009/03/04 Javascript
jQuery 使用手册(一)
2009/09/23 Javascript
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
Javascript中的getUTCHours()方法使用详解
2015/06/10 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
Vue中正确使用jQuery的方法
2017/10/30 jQuery
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
2020/09/21 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
python获取本机mac地址和ip地址的方法
2015/04/29 Python
Python基于Tkinter的HelloWorld入门实例
2015/06/17 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
司仪主持词两篇
2014/03/22 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
关于感恩的作文
2019/08/26 职场文书
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫