详解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+AJAX传送中文会导致乱码的问题的解决方法
Sep 08 PHP
php 生成饼图 三维饼图
Sep 28 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
Dec 05 PHP
PHP中的str_repeat函数在JavaScript中的实现
Sep 16 PHP
探寻PHP脚本不报错的原因
Jun 12 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
PHP日期函数date格式化UNIX时间的方法
Mar 19 PHP
yii2分页之实现跳转到具体某页的实例代码
Jun 02 PHP
Laravel中如何增加自定义全局函数详解
May 09 PHP
让Laravel API永远返回JSON格式响应的方法示例
Sep 05 PHP
PHP实现微信对账单处理
Oct 01 PHP
PHP 出现 http500 错误的解决方法
Mar 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
PHP4实际应用经验篇(3)
2006/10/09 PHP
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
实用函数5
2007/11/08 PHP
PHP分页显示制作详细讲解
2008/11/19 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
AngularJS基础 ng-click 指令示例代码
2016/08/01 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
2016/11/16 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
基于javaScript的this指向总结
2017/07/22 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
2018/04/17 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
解决vue中的无限循环问题
2020/07/27 Javascript
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
大学生个人求职口试自我评价
2014/02/16 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
企业法人代表证明书
2015/06/18 职场文书
教师教育心得体会
2016/01/19 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书