この記事では主に、php プログラムを使用してリモート ネットワーク ファイルを自分のホスト (サーバー、仮想ホスト) にダウンロードする方法を紹介します。もちろん、asp および asp.net のソース コードも提供します。ご参照ください。
私は最近、感動的で感動的なテレビ シリーズ「A Boat in the Ocean」をダウンロードするよう依頼しました。共有の便宜のため、Godaddy の無料 FTP を提供します。
安定性と具体性を考慮して、Godaddy の無料スペースを再開したいのですが、現時点で 2 つのエピソードがアップロードされており、合計が 400 MB を超えています。どうすればよいですか?
そこで、スペースを転送するときに使用した php ファイルを思い出しました。これは、URL をダウンロードできれば、新しいサーバーに転送できるということです。
早速、リモート ネットワーク ファイルをサーバーにダウンロードするための PHP ソース コードを見てみましょう (テストに合格しており、非常に優れており強力です)<フォームメソッド="post">
< ?php
// 最大実行時間 (秒)
set_time_limit (24 * 60 * 60);
if (!isset($_POST['submit'])) die();
// ダウンロードしたファイルを保存するフォルダーはスラッシュ
で終わる必要があります。
$destination_folder = 'temp/';
$url = $_POST['url'];
$newfname = $destination_folder .basename($url);
$file = fopen ($url, "rb");
if ($file) {
$newf = fopen ($newfname, "wb");
if ($newf)
while(!feof($file)) {
fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );
}
}
if ($file) {
fclose($file);
}
if ($newf) {
fclose($newf);
}
?>
<%
関数 downfilea(d_target, s_target)
エラー時は次へ再開
dim myhttp、objstream
set myhttp = server.createobject( "MSXML2.XMLHTTP ")
Myhttp.open "GET "、d_target、false
Myhttp.send()
set objstream = Server.CreateObject( "adodb.stream ")
objstream.Type = 1
objstream.Mode = 3
objstream.Open
objstream.Write myhttp.responseBody
objstream.SaveToFile s_target, 2
err.number <> 0 の場合、err.Clear
関数終了
downfilea "http://www.abc.com/xxx.rar ", Server.MapPath( "down/xxx.rar ")
Response.write "ok"
%>
asp.net バージョンのソース コードもあります (未テスト)
システムを使用します。
System.Net を使用する
System.IO
を使用します。
クラスダウンロードファイル
静的 void メイン (文字列 [] 引数)
//リモート ファイル
文字列サイト URL = "http://www.abc.com/xxx.rar";
//パスとファイル名をローカルの場所にダウンロードします
弦
// WebClientをインスタンス化します
WebClient client=new WebClient();
//WebClient の DownloadFile メソッドを呼び出します
Client.DownloadFile(サイトURL,ファイル名);
}
注:
1. 関連ディレクトリを作成する必要がある場合があります。詳細については、ソース コードを参照してください。たとえば、temp/、down/。
2. PHP バージョンのソース コードはカスタム URL をサポートしていますが、asp および asp.net バージョンはカスタマイズを提供しません。
3. 大きなファイルをコピーする場合、国内のサポートはプログラムのタイムアウトのせいで良くないかもしれませんが、海外のサポートは非常に優れています。
たとえば、Blinux は約 300M のファイルを別のサーバーに転送するのに 28 秒かかります。これは中国では考えられません。
最後に、使用した効果についてフィードバックをいただければ幸いです。