ホームページ > バックエンド開発 > PHPチュートリアル > Web メソッド ftp_PHP チュートリアル

Web メソッド ftp_PHP チュートリアル

WBOY
リリース: 2016-07-21 16:07:56
オリジナル
1078 人が閲覧しました


/* $Id: ftp.php,v 2.2 2002/03/12 23:21:28 pauls Exp $ */

/* このソフトウェアは http://inebria.com/ からのものです */

/* 著作権 (c) 2000
Paul Southworth。  All Rights Reserved.

以下の条件
が満たされる限り、
改変の有無に関わらず、ソースおよびバイナリ形式での再配布および使用が許可されます:
1.ソース コードの再配布は、上記の著作権
通知、この条件リスト、および以下の免責事項を保持する必要があります。
2.バイナリ形式で再配布する場合は、上記の著作権
通知、この条件リスト、および配布物に付属の
ドキュメントおよび/またはその他の資料内の以下の免責事項を複製する必要があります。
3.事前の
書面による許可なしに、このソフトウェアから派生した
製品を推奨または宣伝するために、作者の名前を使用することはできません。

このソフトウェアは、作者によって「現状のまま」提供され、明示的または黙示的な保証も含まれます
ただし、これに限定されません。商品性および特定目的への適合性についての暗黙の保証
は否認されます。  いかなる場合においても、著者は、あらゆる
直接的、間接的、付随的、特別、例示的、または結果的損害(代替品またはサービスの調達、使用、データ、または利益の損失を含みますがこれらに限定されません)に対して責任を負わないものとします。しかし、ビジネスの途中で)しかし、責任の理論、契約、厳格な責任、または不法行為(過失を含む)では、このソフトウェアの使用から何らかの形で生じる場合は、可能性について助言されたとしても、このような被害。 */

/* 設定オプション */

$phpftp_host="localhost";
$phpftp_version="2.2";

/* バージョン フッターが不要な場合は、これをコメントアウトしてください */

$show_version_footer= 1;

/* どのくらいの大きさのファイルを受け入れますか?  また、
php.ini ファイルを編集して、upload_max_filesize を適切に変更する必要がある場合もあります */

$max_file_size="1000000";

/* 一時ディレクトリ $phpftp_tmpdir が存在し、Web サーバーから書き込み可能である必要があります
ヒント: mkdir /var/tmp/xfers && chmod 1777 /var/tmp/xfers */

$phpftp_tmpdir="/var/tmp/xfers";

/* $use_mime_lookup
これをオンにすると、
http への依存関係が作成されます。 //www.inebria.com/mime_lookup/ MIME タイプ ルックアップ ライブラリ。
この変数を「1」に設定すると有効になります。  「0」は無効になります。
これをオンにする場合は、mime_lookup.php ファイルを ftp.php と同じディレクトリ
に置き、「include("mime_lookup.php");」のコメントを解除します。声明。 */

$use_mime_lookup="0";
/* include("mime_lookup.php"); */

/* 関数で上部と下部を囲みます。これは、
関数が送信されない場合があるためです (ファイルのダウンロード状況など)。 */

function phpftp_top() {
global $phpftp_version;
?>



PHP FTP クライアント <?php echo $phpftp_version; ?>



}

function phpftp_bottom() {
global $phpftp_version;
global $show_version_footer;
?>

if (isset($show_version_footer)) {
?>

これはPHP FTP
バージョン


}
?>


}

/* これは、最初にユーザー名/パスワードを収集するために使用されるフォームです */

function phpftp_login() {
phpftp_top();
?>








ログイン:



パスワード:

< ;input name="phpftp_passwd" type="password">

ディレクトリ:

< input name="phpftp_dir" type="text">







phpftp_bottom();
}

/* この関数は TRUE/FALSE を返しません。
$ftp、現在の FTP ストリームの値を返します。 */

function phpftp_connect($phpftp_user,$phpftp_passwd) {
global $phpftp_host;
$ftp = ftp_connect($phpftp_host);
if ($ftp) {
if (ftp_login($ftp,$phpftp_user) ,urldecode($ phpftp_passwd))) {
return $ftp;
}
}
}

function phpftp_list($phpftp_user,$phpftp_passwd,$phpftp_dir) {
global $phpftp_host;
phpftp_top();
?>

$ftp = @phpftp_connect($phpftp_user,$phpftp_passwd);
if (!$ftp) {
?>
FTP ログインに失敗しました!
最初からやり直しますか?
phpftp_bottom();
} else {
if (!$phpftp_dir) {
$phpftp_d ir=ftp_pwd ($ftp);
}
if (!@ftp_chdir($ftp,$phpftp_dir)) {
?>
gt;そのディレクトリには入れません!< ;/strong>


$phpftp_dir=ftp_pwd($ftp);
}
echo "現在のホスト:n";
echo "現在のディレクトリ: " 。 $phpftp_dir 。 "
n";
if ($phpftp_dir == "/") {
$phpftp_dir="";
}

if ($contents = ftp_rawlist($ftp,"") {
$d_i=0;
$f_i=0;
$l_i=0;
$i=0;
while ($contents[$i] ) {
$item[] = split("[ ]+",$contents[$i],9);
$item_type=substr($item[$i][0],0,1);
if ( $item_type == "d") {
/* これはディレクトリです */
$nlist_dirs[$d_i]=$item[$i][8];
$d_i++;
} elseif ($item_type == "l" ) {
/* シンボリックリンクです */
$nlist_links[$l_i]=$item[$i][8];
$l_i++;
} elseif ($item_type == "-") {
/* それはファイル */
$nlist_files[$f_i]=$item[$i][8];
$nlist_filesize[$f_i]=$item[$i][4];
$ f_i++;
} elseif ($item_type = = "+") {
/* anonftp サーバー上の何かです */
$eplf=split(",",implode(" ",$item[$i]),5);
if ($eplf[2 ] == "r") {
/* ファイルです */
$nlist_files[$f_i]=trim($eplf[4]);
$nlist_filesize[$f_i]=substr($eplf[3],1 );
$f_i++;
} elseif ($eplf[2] == "/") {
/* ディレクトリです */
$nlist_dirs[$d_i]=trim($eplf[3]);
$d_i++ ;
}
}/* 他のすべてを無視します */
$i++;
}
?>


if (count($nlist_dirs)>0) {
?>

}
} else {
?>

ディレクトリが空か読み取り不可< /strong>


}
?>


ディレクトリ










< ;/td>
}

if (count($nlist_files)>0) {
?>

ファイル









< ;/td>



$cdup=dirname($phpftp_dir);
if ($cdup == "") {
$cdup="/";
}
?>







< ;form enctype="multipart/form-data" action="ftp.php" method=post>




<入力タイプ="hidden" name="function" value="put">






< input type="hidden" name="phpftp_user" value="">




ftp_quit($ftp );
phpftp_bottom();
}
}

function phpftp_cd($phpftp_user,$phpftp_passwd,$phpftp_dir,$select_directory) {
?>

< ?php
$new_directory=$phpftp_dir . "/" . $select_directory;
phpftp_list($phpftp_user,$phpftp_passwd,$new_directory);
}

function phpftp_mkdir($phpftp_user,$phpftp_passwd,$phpftp_dir,$ new_dir) {
?> ;

$ftp = @phpftp_connect($phpftp_user,$phpftp_passwd);
if ($phpftp_dir == "") {
$phpftp_dir="/" ;
}
if (!$ftp) {
@ftp_quit($ftp);
phpftp_top();
?>
FTP ログインに失敗しました!< /strong>


最初からやり直しますか?
phpftp_bottom();
} else {
$dir_path = $phpftp_dir . $new_dir;
@ftp_mkdir($ftp,$dir_path);
@ftp_quit($ftp);
phpftp_list($phpftp_user,$php) ftp_passwd,$phpftp_dir);
}
};


function phpftp_get($phpftp_user,$phpftp_passwd,$phpftp_dir,$select_file) {
$ftp = @phpftp_connect($phpftp_user,$phpftp_passwd);
if ($phpftp_dir == "") {
$phpftp_dir= "/";
}
if ((!$ftp) || (!@ftp_chdir($ftp,$phpftp_dir))) {
@ftp_quit($ftp);
phpftp_top();
?>
FTP ログインに失敗しました!


最初からやり直しますか?
phpftp_bottom();
} else {
srand((double)microtime()*1000000);
$randval = rand();
$tmpfile=$phpftp_tmpdir 。 「/」。 $select_file 。 「。」 。 $randval;
if (!ftp_get($ftp,$tmpfile,$select_file,FTP_BINARY)) {
ftp_quit($ftp);
phpftp_top();
?>
FTP が失敗しました!


最初からやり直しますか?
< ?php
phpftp_bottom();
} else {
ftp_quit($ftp);
global $use_mime_lookup;
if ($use_mime_lookup == "1") {
$file_mime_type=mime_lookup(substr(strrchr($select_file,". "),1));
}
if (!$file_mime_type) {
$file_mime_type="application/octet-stream";
}
header("Content-Type: " . $file_mime_type);
header("Content -処理: filename=" . $select_file);
readfile($tmpfile);
}
@unlink($tmpfile);
}
}

function phpftp_put($phpftp_user,$phpftp_passw) d,$phpftp_dir,$userfile ,$userfile_name) {
srand((double)microtime()*1000000);
$randval = rand();
$tmpfile=$phpftp_tmpdir 。 「/」。 $userfile_name 。 「。」 。 $randval;
if (!@move_uploaded_file($userfile,$tmpfile)) {
phpftp_top();
?>
アップロードに失敗しました。  一時ファイルを作成できませんか?


最初からやり直しますか?
< ?php
phpftp_bottom();
} else {
if (!$ftp = @phpftp_connect($phpftp_user,$phpftp_passwd)) {
unlink($tmpfile);
phpftp_top ();
?>
FTP ログインに失敗しました!


最初からやり直しますか?
phpftp_bottom();
}else {
ftp_chdir($ftp,$phpftp_dir);
ftp_put($ftp,$userfile_name,$tmpfile,FTP_BINARY);
ftp_quit($ftp);
unlink($tmpfile);
phpftp_list($phpftp_user,$phpftp_passwd, $phpftp_dir);
}
}
}

switch($function) {
case "dir";
phpftp_list($phpftp_user,$phpftp_passwd,$phpftp_dir);
break;
case "cd";
phpftp_cd($ phpftp_user,$phpftp_passwd,$phpftp_dir,$select_directory);
break;
case "get";
phpftp_get($phpftp_user,$phpftp_passwd,$phpftp_dir,$select_file);
break;
case "put";
phpftp_put($ phpftp_user,$phpftp_passwd,$phpftp_dir,$userfile,$userfile_name);
break;
case "mkdir";
phpftp_mkdir($phpftp_user,$phpftp_passwd,$phpftp_dir,$new_dir);
break;
case "";
phpftp_login ();
休憩;
}

?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/315035.html技術記事 ?php /* $Id: ftp.php,v 2.2 2002/03/12 23:21:28 pauls Exp $ */ /* このソフトウェアは http://inebria.com/ からのものです */ /* Copyright (c) 2000 ポール・サウスワース。全著作権所有。再配布...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート