ホームページ >バックエンド開発 >PHPチュートリアル >PHP FTP学習(2) [Osoより転載]_PHPチュートリアル

PHP FTP学習(2) [Osoより転載]_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:11:27761ブラウズ


ここでようやく、プログラムのユーザー インターフェイスを設定する 3 番目のファイル include.php に到達します。

「include.php」には 3 つのフォームが含まれており、現在のディレクトリのリストを取得し、それらを 3 つの変数
$files (現在のディレクトリ内のファイルを含む)、
$file_sizes (対応するファイル サイズ)、
、および $ に保存するための PHP コードが含まれています。 dirs (サブディレクトリ名を含む)

最初の形式では、$dirs を使用して、「action=CWD」に対応するドロップダウン ディレクトリ リストを生成します。

2 番目の形式では、$files $file_sizes を使用して利用可能なファイルのリストを作成し、各ファイルはチェックボックスを使用します。このフォームのアクションは、「action=Delete」と「action=Download」に対応します

3 番目のフォームは、次のように、FTP サイトにファイルをアップロードするために使用されます:
------------ --- --------------------------------------------------- --- ---------------


...

...

--------------------------------- ------ --------------------------------------
いつPHP は次のように動作します。ファイル名を受け取ると、いくつかの変数が生成され、ファイル サイズ、一時ファイル名、およびファイル タイプが指定されます。アップロードされると、ファイル名は $upfile_name に保存されます。 $upfile (この変数は PHP 自体によって作成されます)
この情報を使用して、次のステートメントを作成できます:
-------------------------- -------------------------------------------------- - ---
ftp_put($result, $upfile_name, $upfile, FTP_BINARY);
---------------------------- ---------------------------------------------------- ----
コードリストは次のとおりです:
-------------------------------------- ------------ ---------------------------------------------------
< ;!-- ここから、index.html のコードが始まります - ->

























---------------- --------------------------------- --------------- ------------------------
---------- ------- -------------------------------- ------------------ --








/*
--------------------- --------------------- ----------------------------- ------
免責事項:

これは自己責任で使用してください。リスク コードです。

これは説明のみを目的としており、運用環境向けではありません。ユーザーにはいかなる種類の保証も提供されません。

警告されました!

すべてのコードの著作権は Melonfire, 2000 にあります。 http://www.melonfire.com
------ ---------------------- ------------------------ -----------
*/

// 接続する関数FTP サーバー
関数 connect()
{
グローバル $server, $username, $password;
$conn = ftp_connect($server );
ftp_login($conn, $username, $password);
return $conn;
}


// メインプログラムが開始します

// 有効なフォームエントリをチェックします。 else print エラー
if (!$server
! $username
!$password)
{
echo "フォームデータが不完全です!";
}
else
{


// connect
$result = connect();

// action:ディレクトリ変更
if ($ action == "CWD")
{

// 初期段階では$rdirは存在しません
// したがって、デフォルトのディレクトリであると仮定します
if (!$rdir)
{
$path = ".";
}
// 現在の場所 $cdir を取得し、要求されたディレクトリに追加します $rdir
else
{
$path = $ cdir . "/" . $rdir;
}

// 要求されたディレクトリに変更します
ftp_chdir($result, $path) ;

}

// アクション: ファイルを削除します
if ($action = = "削除")
{

ftp_chdir($result, $cdir);

// 選択したファイルをループして削除します
for ($x=0; $x{
ftp_delete($result, $cdir . "/" . $dfile[$x]);
}

}
/ / action: ファイルをダウンロード
else if ($action == "Download")
{

ftp_chdir ($result, $cdir);

// 選択したファイルをダウンロードします
// 重要: ここで別のダウンロード場所を指定する必要があります !!
for ($x=0; $x{
ftp_get($result, $dfile[$x], $dfile[$x], FTP_BINARY);
}

}
// アクション: ファイルをアップロードします
else if ($action == "Upload")
{

ftp_chdir($result, $cdir);

// ファイルを置く

/*
より良いアイデアは、使用することです
$res_code = ftp_put($result, $HTTP_POST_FILES["upfile"]["name"],
$HTTP_POST_FILES["upfile"]["tmp_name"], FTP_BINARY);
セキュリティが強化されるため
*/
$ res_code = ftp_put($result, $upfile_name, $upfile, FTP_BINARY);


// ステータスを確認して表示します
if ($res_code == 1)
{
$status = "アップロード成功!";
}
else
{
$status = "アップロードエラー!";
}

}

// ファイルリストを作成
$filelist = ftp_nlist($result, ".");

// そしてインターフェースを表示
include("include .php");

// 接続を閉じる
ftp_quit($result);

}
?>





-------------------------------------- --------------------------------------
-------------------------- -------------------------------------------------- ------------------



// 現在の場所を取得します
$here = ftp_pwd($result);

/*
ftp_size() は非常に遅いため、特にディレクトリ内のすべてのファイルを含む配列を操作する場合
、このセクションでは現在のディレクトリ内のすべてのファイルに対して ftp_size() を実行します。
ディレクトリを作成し、3 つの配列を作成します。
*/

// ファイルの配列
$files = Array();

// ディレクトリの配列
$dirs = Array();

// ファイルサイズの配列
$ file_sizes = Array();

//counters
$file_list_counter = 0;
$dir_list_counter = 0;

// $filelist
for ($x=0; $x{
if (ftp_size($result, $filelist[$x]) != -1)
{
// 配列を作成します
$files[$file_list_counter] = $filelist[$x];
$file_sizes [$file_list_counter] = ftp_size($result, $filelist[$x]);
$file_list_counter++;
}
else
{
$dir_list[$dir_list_counter] = $filelist[$x];
$dir_list_counter++;
}
}

?>



あなたは現在 < で働いていますか? $here をエコーし​​ます。 ?>









利用可能なディレクトリ:




>
<入力タイプ=隠し名=パスワード値=>
<入力タイプ=隠し名=サーバー値=>
<入力タイプ=隠し名=cdir値=>














利用可能なファイル:



<入力タイプ=隠し名=サーバー値=>
<入力タイプ=隠し名=ユーザー名値=>
<入力タイプ=隠し名=パスワード値=>
<入力タイプ=隠し名=cdir値=>


サーバー
< ;/td>

<入力タイプ = テキスト名 = サーバーテキスト名=ユーザー名>
パスワード>





// チェックボックスとサイズを含むファイルリストを表示します
for ($y=0; $y{
echo "
<入力タイプ=チェックボックス名=dfile[] 値= $files[$y] .
">"。 $files[$y] 。 " (" . $file_sizes[$y] . " バイト)
";
}

?>














ファイルアップロード:



>
<入力タイプ=隠し名=パスワード値=>
<入力タイプ=隠し名=サーバー値=>
<入力タイプ=隠し名=cdir値=>















www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/313932.html技術記事 「include.php」には 3 つのテーブルが含まれており、一部の PHP コードを取得して、...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。