如何用CURL将文件下载到本地指定文件夹

//获得跳转后的url地址
    function getLocationUrl($url){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, TRUE);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_USERAGENT, "Fiddler");
        curl_setopt($ch, CURLOPT_HEADER, TRUE);
        $response = curl_exec($ch);
        curl_close($ch);
        preg_match_all(‘/^Location:(.*)$/mi‘, $response, $matches);

        return ! empty($matches[1]) ? trim($matches[1][0]) : ‘‘;
    }
function GrabFile($url, $dir, $filename=‘‘){
        if(empty($url)){
            return false;
        }
        $ext = strrchr($url, ‘.‘);
        /*if($ext != ‘.gif‘ && $ext != ".jpg" && $ext != ".bmp"){
            echo "格式不支持!";
            return false;
        }*/

        $dir = realpath($dir);

        /*$start = strrpos($url, "realName=")+9;
        $end = strrpos($url, "&");
        $length = $end-$start;
        $filename = substr($url, $start,$length);*/

        //目录+文件
        $filename = (empty($filename) ? ‘/‘.time().‘‘.$ext : ‘/‘.$filename);
        $filename = $dir . $filename;
        //开始捕捉
        ob_start();
        readfile($url);
        $img = ob_get_contents();
        ob_end_clean();
        $size = strlen($img);
        $fp2 = fopen($filename , "a");
        fwrite($fp2, $img);
        fclose($fp2);
        return $filename;
    }

若下载文件的url有重定向,可先调用第一个方法

$imgpath = "http://www.baidu.com/img/bdlogo.png";

$url = $this->getLocationUrl($imgpath);
$result = $this->GrabFile($url,"E:\Tools\download");//(图片地址,存放目录,存放显示文件名称);
var_dump($result);

时间: 2024-10-28 11:35:02

如何用CURL将文件下载到本地指定文件夹的相关文章

Delphi - 本地路径的创建、清空本地指定文件夹下的文件

本地路径的创建 在做下载操作时,我们一般先把文件下载到本地指定的路径下,然后再做其他使用. 为了防止程序出现异常,我们通常需要先判断本地是否存在指定的路径. 以C盘Tmp文件夹为例,我们可以这样做,代码如下: 1 if not DirectoryExists('C:\Tmp') then 2 if not CreateDir('C:\Tmp') then 3 raise 4 Exception.Create('Opps, Create New Dir Failed!'); 清空本地指定文件夹下的

asp.net从服务器(指定文件夹)下载任意格式的文件到本地

一.我需要从服务器下载ppt文件到本地 protected void Btn_DownPPT_Click(object sender, EventArgs e)        {            DBService svc = new DBService();            svc.DownPpts();            string strFileName = "公报.ppt";            string filename = Context.Serve

FTP上传指定文件夹及其文件到服务器

1.在服务器端的IIS上建立一个FTP站点 注意事项:路径关联到你要存放(上传内容)的文件夹名称: 指定这个FTP站点的ip地址和端口号 2.本地准备代码 -------------------------------2.1上传类--------------------------------------------------------- public class Up    {        /// <summary>        ///   上传文件菜单        /// <

JavaSE8基础 File list 获取指定文件夹下的第一层文件和文件夹的名字

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0) information: 被查看文件夹中的内容截图. code: package jizuiku0; import java.io.File; /* * @version V17.09 */ public class GetName { public static void main(String[] args) { String

php 删除指定文件夹

php 删除指定文件夹 1.前言 目标:php删除一个指定目录 所使用的的php函数:is_dir,opendir,readdir,scandir,rmdir,closedir,等等(注:其他文件操作函数也可以完成,这里只列举了本次使用的函数) 2.相关函数介绍 php文件操作的方法大致相同,已经在上一篇介绍过了,这里就不在重复介绍,这里就介绍一个新函数 rmdir 详情参考:http://www.w3school.com.cn/php/func_filesystem_rmdir.asp 其他函

遍历指定文件夹下的所有图片,并复制到指定目录下

import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.imageio.ImageIO; public class Copy { /** * 遍历文件夹下的所有图片文件,并复制到指定文件夹下 */ static String srcfile = "E:/I

C# 在本地创建文件夹及子文件夹

1 string dict = @"d:\估价报告\"; 2 if (!Directory.Exists(dict)) 3 { 4 Directory.CreateDirectory(dict); //创建文件夹 5 } 6 string subFolder = "subfolder"; 7 string pathString = System.IO.Path.Combine(dict, subFolder); 8 if (!System.IO.File.Exist

win7基础 cmd del+指定文件名.扩展名 删除指定文件夹下的一个指定文件

系统      :Windows7注意事项  :博文内容仅供参考,不可用于其他用途. 指定文件夹内的初始文件, cmd 中删除 指定的文件 结果是, ------------------------------------------如果您觉得博文内容有可以优化的地方,请留下评论,我会认真思考的.

python 脚本(获取指定文件夹、指定文件格式、的代码行数、注释行数)

1.代码的运行结果: 获取 指定文件夹下.指定文件格式 文件的: 总代码行数.总注释行数(需指定注释格式).总空行数: 1 #coding: utf-8 2 import os, re 3 4 # 代码所在目录 5 FILE_PATH = './' 6 7 def analyze_code(codefilesource): 8 ''' 9 打开一个py文件,统计其中的代码行数,包括空行和注释 10 返回含该文件总行数,注释行数,空行数的列表 11 ''' 12 total_line = 0 13