【问题标题】:PHP download a file through direct link and save it on my serverPHP通过直接链接下载文件并将其保存在我的服务器上
【发布时间】:2013-10-23 12:03:06
【问题描述】:

我正在尝试运行 PHP 脚本(从 Linux 服务器),它将通过直接下载链接下载文件并将其保存在我的服务器上。

这是我正在使用的脚本:

<?php

    $url  = 'http://download.maxmind.com/app/geoip_download?edition_id=108&date=20131015&suffix=zip&license_key=XXXXXXXXXXX';
    $path = '/apps/test/';

    $fp = fopen($path, 'w');

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_FILE, $fp);

    $data = curl_exec($ch);

    curl_close($ch);
    fclose($fp);
?>   

由于某种原因它对我不起作用,有什么建议吗?

【问题讨论】:

  • 输出文件名是什么?
  • 你检查过日志吗?您(php/apache 用户)是否有权写入该目录?
  • 文件名是 GeoIP-YYYYMMDD.zip,我不想重命名它,而是将它保存在 /apps/test/ 下,是的,我确实拥有对指定文件夹。

标签: php linux download


【解决方案1】:

您需要验证防火墙上的端口是否打开并使用以下命令: (这也会以原始格式下载文件)

shell_exec("wget -P /apps/birst/php_test_scripts/ --content-disposition "."'"."https://download.maxmind.com/app/geoip_download?edition_id=108&suffix=zip&license_key=XXXXXXXX"."'");

【讨论】:

    【解决方案2】:

    你为什么不直接使用:

    shell_exec("wget -P /target/directory/ http://download.link.com/download.zip");
    

    【讨论】:

    • 好吧,我认为它应该可以工作,但我得到 Connection denied: Resolving download.maxmind.com... 108.168.255.243, 2607:f0d0:3:8::4 Connecting to download.maxmind。 com|108.168.255.243|:80... 失败:连接被拒绝。连接到 download.maxmind.com|2607:f0d0:3:8::4|:80... 失败:协议不支持地址族。
    【解决方案3】:

    试试这个

    $url = 'http://download.maxmind.com/app/geoip_download?edition_id=108&date=20131015&suffix=zip&license_key=XXXXXXXXXXX';
    $path = '/apps/test/';
    $filepath = $path .'file.zip';
    $data = file_get_contents($url);
    file_put_contents($filepath, $data);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-20
      • 1970-01-01
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 2017-04-01
      相关资源
      最近更新 更多