PHP下载文件(laravel)
来源:互联网 发布:阿里云账号注销解绑 编辑:程序博客网 时间:2024/06/06 01:54
public function downloadLaravel() //有laravel中有现成的下载方法 { return response() ->download(realpath(base_path('public')).'/2.jpg', 'new.jpg'); }
realpath:该函数删除所有符号连接(比如 '/./', '/../' 以及多余的 '/'),返回绝对路径名。
base_path():函数返回项目根目录的绝对路径
download():第一个参数是下载的文件的位置,第二个是文件被下载后赋予的新名字;
public function download(){ //以原生PHP下载 $filename=public_path().'/../2.jpg'; //public_path返回public的绝对路径(因为是在框架中写的所以用了laravel中的函数;) $file_size=filesize($filename);//filesize获取文件大小 header('Content-Type:image/gif'); //指定下载文件类型 header('Content-Disposition: attachment; filename="2.jpg"'); //指定下载文件的描述 header('Content-Length:'.$file_size);//指定下载文件大小 $fp=fopen($filename,"r");//用只读方式打开; $buffer=1024;//规定一个文件切割的大小 $file_count=0;//向浏览器返回数据 while(!feof($fp) && $file_count<$file_size){ //feof() 函数检测是否已到达文件末尾 。 $file_con=fread($fp,$buffer); //fread() 函数读取文件(可安全用于二进制文件)。 $file_count+=$buffer; echo $file_con; } fclose($fp);//关闭文件 }
为了防止文件过大,占用运行内存,我们采用把文件切割到安全大小上传。
这只是下载的简单操作,很多时候项目中的下载为了防止被入侵,我们不可能直接拿文件的路径展示出来,
来进行下载。这样别人可以直接将你文件中的重要文件直接荡下来。
所以...有两个措施【1:可以将允许下载的文件信息放入数据库中,下载的时候通过Id来获取他的信息来下载。】
【2:给一个文件夹,将所以允许下载的文件都放在里面,当有人想下载这个文件夹以外的文件时不允许下载。】
当下载的时候发现报
这样的BUG时,要将PHP的扩展php_fileinfo打开,就是将前面的 ‘;’去掉。
阅读全文
0 0
- PHP下载文件(laravel)
- laravel实现下载文件
- laravel实现文件下载功能
- laravel 5.3 route.php文件
- Laravel最佳分割路由文件(routes.php)的方式
- php laravel 源码阅读2(入口文件)
- PHP下载文件(二)
- php中(文件下载)
- php文件下载(easy)
- laravel(二)laravel文件上传
- laravel (三) laravel自定义迁移文件
- php laravel 框架 之文件上传
- laravel系列之生成_ide_helper.php文件
- laravel 一 搭建环境(mac)Composer下载安装laravel
- Laravel/php
- PHP实现文件安全下载 (藏)
- PHP文件下载(考虑到各种格式)
- php从服务器下载文件(图片)
- java4.16
- Python小白学习之路
- NOIP模拟(20171031)T1 机器清洁工
- Tensorflow学习之tf.cast类型转换函数
- js中call和apply(函数的上下文调用模式)详解
- PHP下载文件(laravel)
- hadoop安装
- [收藏]redis配置文件详解
- C/C++ 程序编译与链接的过程详解(静态链接)
- 第四课 方法
- Kafka 参数列表和解释
- jdk9新特征系列
- http以post方式上传一个文件,构造其请求头和消息报文
- 线性时间选择排序