-1

FTPを使用してファイルをダウンロードするコードをいくつか試しましたが、コンピュータークライアントでファイルが送信されません。このコードは、サーバー コンピューターの別のフォルダーからファイルをコピーするだけです。解決策を教えてください。これが私のコードです:

<?php
//FTP File Download
$file_name      = 'myfile.xml';
$destination    = '/download/'.$file_name;
$ftp_user_name  = 'chelsea';
$ftp_user_pass  = 'drogba';
$ftp_server = '192.168.1.1';
$conn_id    = ftp_connect($ftp_server);
$login_result   = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

ftp_nb_get($conn_id, $destination, $file_name, FTP_BINARY);
ftp_close($conn_id);
?>
4

3 に答える 3

0

スクリプトが 2 番目のサーバーからスクリプトを実行しているサーバーにファイルをダウンロードした後、適切なreadfileヘッダーを付けてクライアントに送信できます (こちらを参照してください: Headers used to download file php )

もちろん、PHP スクリプトへの要求は HTTP 要求であり、その場でプロトコルを変更することはできないため、HTTP 経由で送信されます。

于 2013-01-23T08:48:48.823 に答える
0

curl を使用して ftp からファイルをダウンロードしてみてください

$curl = curl_init();
$file = fopen("myfile.xml", 'w');
curl_setopt($curl, CURLOPT_URL, "ftp://ftp.yourdomain.com/myfile.xml"); #input
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FILE, $file); #output
curl_setopt($curl, CURLOPT_USERPWD, "$_FTP[username]:$_FTP[password]");
curl_exec($curl);
curl_close($curl);
fclose($file);

PHP: ftp サーバーからハードドライブにファイルをダウンロードしますか?

于 2013-01-23T08:21:31.850 に答える
0

必ず FTP サーバーがファイルの取得を許可する サーバーからサーバーへのファイルの取得を許可しない場合、この機能を使用することはできません。

そしてこのコードをテストします

<?php

// define some variables
$local_file = '<save-file-as>';
$server_file = '<server-file-name>';
$server_directory='/';
$ftp_user_name='<ftp-user>';
$ftp_user_pass='<ftp-pass>';
$ftp_server='<ftp-host-name>';
// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

/* uncomment if you need to change directories*/
if (ftp_chdir($conn_id, $server_directory)) {
    echo "Current directory is now: " . ftp_pwd($conn_id) . "\n";
} else { 
    echo "Couldn't change directory\n";
}


// try to download $server_file and save to $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
   echo "Successfully written to $local_file\n";
} else {
   echo "There was a problem\n";
}

// close the connection
ftp_close($conn_id);

?>
于 2013-01-23T08:16:17.773 に答える