php年夜文件无奈下载的处理方法:起首取得要下载的文件名;而后经过“set_time_limit(0);”办法设置剧本的最年夜执行工夫;最初肃清缓存便可。
保举:《PHP视频教程》
比来正在做一个照片下载零碎,需求把主顾相片下载上去,而后进行ps修图,然而下载的文件要求是相机的原始文件cr2的文件。这类类型的文件普通比拟年夜,普通一张相片的过小是30M阁下,过后下载实现后,也没留意,如今反响零碎下载上去的照片,photoshop 无奈关上,一开端认为是软件不装置camera Raw 插件,起初装置了后,发现仍是打没有开,最初把下载上去的图片以及上传前的图片一比照,下载的照片比原图小不少,这时候发现极可能呈现下载图片没有完好的景象,一顿baidu搜寻,发现原来是php剧本执行工夫的成绩。普通默许是30秒,设置个设置装备摆设后处理成绩。
set_time_limit(0); 代表没有限度工夫,好了上面贴出本人的下载代码。这个函数各人能够间接应用
//fname为要下载的文件名 //$fpath为下载文件所正在文件夹,默许是downlod function download($fpath="download/"){ //取得要下载的文件名 $pathinfo=pathinfo($fpath); $filename=$pathinfo['filename'].'.'.$pathinfo['extension']; //防止中文文件名呈现检测没有到文件名的状况,进行转码utf-8->gbk // $filename=iconv('utf-8', 'gb2312', $fname); $downpath=$fpath; if(!file_exists($downpath)){//检测文件能否存正在 echo "文件没有存正在!"; die(); } // //设置剧本的最年夜执行工夫,设置为0则无工夫限度 set_time_limit(0); $fp=fopen($downpath,'rb');//只读形式关上 $filesize=filesize($downpath);//文件巨细 // echo $filesize; // die; //前往的文件(流方式) header("Content-type: application/octet-stream"); //依照字节巨细前往 header("Accept-Ranges: bytes"); //前往文件巨细 header("Accept-Length: $filesize"); //这里客户真个弹出对话框,对应的文件名 header("Content-Disposition: attachment; filename=".$filename); //肃清缓存 ob_clean(); flush(); //设置分流 $buffer=4096; //来个文件字节计数器 $count=0; while(!feof($fp)&&($filesize-$count>0)){ //设置文件最长执行工夫 set_time_limit(0); $data=fread($fp,$buffer); $count+=$data;//计数 echo $data;//传数据给阅读器端 } fclose($fp); }
心愿能协助各人处理成绩
以上就是若何处理php年夜文件无奈下载的成绩的具体内容,更多请存眷资源魔其它相干文章!
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!