2

cURL 経由で ftp サーバーからファイルをダウンロードしたいと考えています。これが私の機能です:

function getFile($remotefolder, $remotefile, $localfile) {
    $url  = "ftp://xxxxx.de/" . $remotefolder . "/" . $remotefile;
    $fp   = fopen($localfile, "w+");

    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($handle, CURLOPT_UPLOAD, 0);
    curl_setopt($handle, CURLOPT_FILE, $fp);
    curl_setopt($handle, CURLOPT_USERPWD, "<Username>:<Password>");
    $result = curl_exec($handle);

    $info = curl_getinfo($handle);

    curl_close($handle);
    fclose($fp);

    print_r($info);
}

私のPCでそれを実行すると、すべて正常に動作します。しかし、サーバーでコードを実行すると、次の出力が得られ、ファイルはダウンロードされませんでした。

output server
=============
Array
(
    [url] => ftp://xxxx/xxxx/xxx.log.gz
    [content_type] =>
    [http_code] => 257
    [header_size] => 0
    [request_size] => 0
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 1.357453
    [namelookup_time] => 0.002011
    [connect_time] => 0.011153
    [pretransfer_time] => 1.357439
    [size_upload] => 0
    [size_download] => 0
    [speed_download] => 0
    [speed_upload] => 0
    [download_content_length] => 0
    [upload_content_length] => 0
    [starttransfer_time] => 0
    [redirect_time] => 0
)

さらに詳しい情報がありましたら、お知らせください。

前もって感謝します、

デニス

4

2 に答える 2

0

http_code の応答を見ると、257 は作成された「PATHNAME」のコードです。これは、ファイルが存在しないか、パスが正しくない可能性があることを意味します。

存在することがわかっている別の URL でテストします。

于 2013-02-26T10:59:12.147 に答える
0

引数の順序を入れ替えてみてください。これは、FTP サーバーにあるファイルに依存するクラスの 1 つで使用するものです。

$fh = fopen('downloads/' . self::ZIP, 'w');
$ch = curl_init(self::FTP . self::PATH . '/' . self::ZIP);

curl_setopt($ch, CURLOPT_USERPWD, self::USERNAME . ':' . self::PASSWORD);
curl_setopt($ch, CURLOPT_FILE, $fh);

curl_exec($ch);
curl_close($ch);
fclose($fh);
于 2013-02-26T11:02:39.857 に答える