ホームページ  >  記事  >  バックエンド開発  >  ファイルをリモートの場所からダウンロードし、ハードディスクに保存せずに別のサーバーに直接アップロードするにはどうすればよいですか?

ファイルをリモートの場所からダウンロードし、ハードディスクに保存せずに別のサーバーに直接アップロードするにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 14:13:381062ブラウズ

プロジェクトに取り組んでいます。PHP を使用してリモートの場所から画像をダウンロードし、FTP 経由で別のサーバーにアップロードし、ハードドライブにダウンロードする必要があります。私はこれをよく行い、FTP を使用してローカルにアップロードします。ファイルを直接渡すこともできます。その方法を教えてください。


ディスカッションに返信してください (解決策)

file_put_contents('ftp://username: passwd@ftphost/filename', file_get_contents('http:/ /remote host/filename'));

file_put_contents('ftp://username:password@) を使用する場合、すでに $ftp_stream が FTP サーバーに接続されています。 ftphost/filename', file_get_contents('http://リモートホスト/ファイル名')) の場合、再度 FTP サーバーに接続する必要があり、必然的にリソースの無駄が発生します。
疑問に思います: ftp_put($ftp_stream,$remote_file, $local_file) のような既存の $ftp_stream を使用して、コンテンツをファイルに直接書き込む file_put_contents() の関数を実現できますか?
つまり、ftp_put($ftp_stream,$remote_file, $string) に似た関数はありますか?

あなたの脳は混乱していると思います

ftp 拡張機能には ftp_fput 関数が用意されています。それを使用してみてはいかがでしょうか?

$fp = fopen('http://remotehost/filename', 'rb');
ftp_fput($ftp_stream, $remote_file, $fp);

はは、書くときはまったく動きたくないコード。脳が逝ってしまった

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。