PHPでFTPサーバーからファイルをダウンロードする方法 ファイルダウンロードボックスをポップアップさせずに自動ダウンロードを実現するにはどうすればよいですか? ダウンロードされたファイルは元のファイルより小さいですか?
$filename="/www/767675.dat";
php_ftp_download($filename);
function php_ftp_download($filename) {
$phpftp_host = "ftplocalhost"; // サーバーアドレス
$phpftp_port = 21; // サーバーポート
$phpftp_user = "name" // ユーザー名
$phpftp_passwd = "passwrd";
$ftp_path = dirname($filename) . "/";// パスを取得します
$select_file =basename($filename);// ファイル名を取得します
$ftp = ftp_connect($phpftp_host, $phpftp_port );// FTP サーバーに接続します
if($ftp)
{
if(ftp_login($ftp, $phpftp_user, $phpftp_passwd)) { // ログイン
if(@ ftp_chdir($ftp ,$ftp_path)) {// 指定したパスを入力します
$tmpfile = tempnam( getcwd()."/", "temp" ) // 固有の一時ファイルを作成します
if(ftp_get ($ftp, $ tmpfile, $select_file, FTP_BINARY)) { // 指定されたファイルを一時ファイルにダウンロードします
ftp_quit( $ftp ) // 接続を閉じます
header("Content-Type: application/ octet-stream");
header("Content-Disposition:attachment; filename=" . $select_file);
readfile($tmpfile);
unlink($tmpfile );//一時ファイルを削除
exit;
}
unlink($tmpfile );
}
}
}
ftp_quit($ftp);
}
?>
1.php ファイルのダウンロード ボックスをポップアップ表示せずに、ftp サーバーからファイルを自動的にダウンロードするにはどうすればよいですか?以下のダウンロード選択ボックスは表示されません。
2. 保存されたファイルをダウンロードすると、ダウンロードは成功したと表示されますが、ダウンロードされたファイルは元のファイルより小さいです。
-----解決策---------
私の観点からは、このダウンロード プロンプトは消えるべきではありません。これは Windows がシステム セキュリティのために実装した保護措置であるためです。ファイルをクリックすると自動的にローカルにダウンロードされる場合、そのコンピュータは非常に危険ではないでしょうか。
ダウンロードしたファイルは 2 つの異なるシステム プラットフォーム上にありますか?そうなると、サイズが違ってきます。データの読み取りが不完全である可能性もありますので、FTP 経由でダウンロードして、ファイルが同じかどうかを確認してください。