ホームページ  >  記事  >  バックエンド開発  >  PHPファイルのアップロード

PHPファイルのアップロード

巴扎黑
巴扎黑オリジナル
2016-11-30 09:35:01947ブラウズ

PHP を通じて、ファイルをサーバーにアップロードできます。

ファイルアップロードフォームの作成

ユーザーがフォームからファイルをアップロードできるようにすると非常に便利です。

ファイルをアップロードするには、以下の HTML フォームをご覧ください:




enctype="multipart/form-data ">









これについては次の点にご注意ください。 form 情報:

タグの enctype 属性は、フォームを送信するときに使用するコンテンツ タイプを指定します。フォームにファイル コンテンツなどのバイナリ データが必要な場合は、「multipart/form-data」を使用します。

タグの type="file" 属性は、入力をファイルとして処理することを指定します。たとえば、ブラウザでプレビューすると、入力ボックスの横に参照ボタンが表示されます。

注: ユーザーにファイルのアップロードを許可すると、セキュリティ上の大きなリスクが生じます。信頼できるユーザーのみにファイルのアップロード操作を許可してください。

アップロードスクリプトを作成します

「upload_file.php」ファイルには、ファイルをアップロードするためのコードが含まれています:

if ($_FILES["file"]["error"] > 0)
{
echo "エラー: " . $_FILES["file"]["error"] . "
";
}
else
{
echo "アップロード: " . $_FILES["file"]["name" ] . "
";
echo "タイプ: " . $_FILES["ファイル"]["タイプ"] "
";
エコー "サイズ: " . ["ファイル"]["サイズ"] / 1024) . " Kb
";
echo "保存場所: " . $_FILES["ファイル"]["tmp_name"];
}
?>

PHP のグローバル配列 $_FILES を使用すると、クライアント コンピューターからリモート サーバーにファイルをアップロードできます。

最初のパラメータはフォームの入力名で、2 番目の添え字は「name」、「type」、「size」、「tmp_name」、または「error」です。次のように:

$_FILES["file"]["name"] - アップロードされたファイルの名前

$_FILES["file"]["type"] - アップロードされたファイルのタイプ

$_FILES[ " file"]["size"] - アップロードされたファイルのサイズ (バイト単位)

$_FILES["file"]["tmp_name"] - サーバーに保存されているファイルの一時コピーの名前

$ _FILES[" file"]["error"] - ファイルのアップロードによって引き起こされるエラー コード

これはファイルをアップロードする非常に簡単な方法です。セキュリティ上の理由から、ファイルをアップロードする権限を持つユーザーに制限を追加する必要があります。

アップロード制限

このスクリプトでは、ファイルのアップロードに制限を追加しました。ユーザーは .gif または .jpeg ファイルのみをアップロードでき、ファイル サイズは 20 kb 未満である必要があります:


if ((($_FILES["file"]["type"] == "image /gif")
|| ($_FILES["ファイル"]["タイプ"] == "画像/jpeg")
|| ($_FILES["ファイル"]["タイプ"] == "画像/pjpeg "))
&& ($_FILES["file"]["size"] {
if ($_FILES["file"]["error"] > 0)
{
echo "エラー: " . $ _FILES["file"]["error"] . "
";
}
else
{
echo "アップロード: " . $_FILES["file"]["name"] . "< br />";
echo "タイプ: " . $_FILES["ファイル"]["タイプ"] "
";
エコー "サイズ: " . "ファイル"] ["サイズ"] / 1024) . " Kb
";
echo "保存場所: " . $_FILES["ファイル"]["tmp_name"];
}
}
else
{
echo " 無効なファイル";
}

?>

注: IE の場合、認識される jpg ファイルの種類は pjpeg である必要があり、FireFox の場合、認識される jpg ファイルの種類は jpeg である必要があります。

アップロードされたファイルを保存します

上記の例では、アップロードされたファイルの一時コピーをサーバーの PHP 一時フォルダーに作成します。

この一時的にコピーされたファイルは、スクリプトが終了すると消えます。アップロードしたファイルを保存するには、それを別の場所にコピーする必要があります:

if ((($_FILES["file"]["type"] == "画像/gif")
|| ($_FILES["file"]["type"] == "画像/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] {
if ($_FILES["file"]["error"] > 0)
{
echo "リターン コード: " . $_FILES["ファイル"]["エラー"] 。 "
";
}
else
{
echo "アップロード: " . $_FILES["ファイル"]["名前"] 。 "
";
echo "Type: " . $_FILES["ファイル"]["タイプ"] 。 "
";
echo "サイズ: " . ($_FILES["ファイル"]["サイズ"] / 1024) 。 " Kb
";
echo "一時ファイル: " . $_FILES["ファイル"]["tmp_name"] 。 "
";

if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] 。 " すでに存在します。 ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo 「保存場所:」。 "アップロード/" 。 $_FILES["file"]["name"];
}
}
}
else
{
echo "無効なファイル";
}
?>

上の表の発言检测了はこの文がすでに存在しているかどうか、存在しない場合、ファイルは指定されたファイル ファイルに保存されます。

注釈: この例では、ファイルは「アップロード」という名前の新しいファイル ファイルに保存されます。

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