本文作者:DurkBlue

php 根据URL下载远程图片、压缩包、pdf等文件到本地的教程

DurkBlue 2020-02-11 1824
php 根据URL下载远程图片、压缩包、pdf等文件到本地的教程摘要: 1、此方法可以下载图片、压缩包、pdf(亲测),应该所有类型的文件都可以下载到本地,可以试一下//远程路径,名称,文件后缀function downImgRar($url...

1、此方法可以下载图片、压缩包、pdf(亲测),应该所有类型的文件都可以下载到本地,可以试一下


//远程路径,名称,文件后缀function downImgRar($url,$rename,$ext){    switch ($ext) {        case 'jpg':        //下载图片            $file_path = 'uploads/images/';            
            break;        case 'png':        //下载图片            $file_path = 'uploads/images/';            
            break;        case 'pdf':        //下载PDF            $file_path = 'uploads/pdf/';    
            break;        case 'rar':        //下载压缩包            $file_path = 'uploads/rar/';            
            break;        case 'zip':        //下载压缩包            $file_path = 'uploads/rar/';            
            break;        default:            $file_path = 'uploads/files/';            
        break;    }    $ch = curl_init($url);    curl_setopt($ch, CURLOPT_HEADER, 0);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);    $rawdata=curl_exec ($ch);    curl_close ($ch);    // 使用中文文件名需要转码    $fp = fopen($file_path.iconv('UTF-8', 'GBK', $rename).".".$ext,'w');    fwrite($fp, $rawdata);    fclose($fp);    // 返回路径    return $_SERVER['DOCUMENT_ROOT'].$file_path.$rename.".".$ext;}


2、下载压缩文件,这个只可以下载压缩文件


// 下载压缩包function downRar($file_path){    $file_name = '/uploads/rar/2009323162920-维C银翘片说明书.rar';    $file_name = iconv("utf-8","gbk//IGNORE",$file_name); // 特别注意!特别注意!特别注意这里,windows下必须开转码,不然直接文件不存    $file_path = $_SERVER['DOCUMENT_ROOT'] . $file_name;// 比如windows下这里我的是 "D:/web/public/uploads/rar/2009323162920-维C银翘片说明书.rar"    //判断如果文件存在,则跳转到下载路径    if (!file_exists($file_path)) {        die("文件不存在!");    }    $fp = fopen($file_path, "r+") or die('打开文件错误');   //下载文件必须要将文件先打开。写入内存    $file_size = filesize($file_path);    //返回的文件流    Header("Content-type:application/octet-stream");    //按照字节格式返回    Header("Accept-Ranges:bytes");    //返回文件大小    Header("Accept-Length:" . $file_size);    //弹出客户端对话框,对应的文件名    Header("Content-Disposition:attachment;filename=" . substr($file_name, strrpos($file_name, '/') + 1));    //防止服务器瞬间压力增大,分段读取    $buffer = 1024;    while (!feof($fp)) {        $file_data = fread($fp, $buffer);        echo $file_data;    }    fclose($fp);    die("下载成功!");}

php 根据URL下载远程图片、压缩包、pdf等文件到本地的教程  第1张

此篇文章由DurkBlue发布,请自觉转载请注明来处
文章投稿或转载声明

来源:DurkBlue版权归原作者所有,转载请保留出处。本站文章发布于 2020-02-11
温馨提示:文章内容系作者个人观点,不代表DurkBlue博客对其观点赞同或支持。

赞(0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享