ホームページ  >  記事  >  バックエンド開発  >  PHP画像ファイルアップロード実装コード_PHPチュートリアル

PHP画像ファイルアップロード実装コード_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:32:44771ブラウズ

Web サイトのセキュリティのため、php ファイルのアップロードは絶対に許可されていません。誰かがあなたのバックエンドに侵入して php ファイルをアップロードすると、あなたの Web サイトのすべてのソース コードが保存されて彼のものとなり、その人はそれを直接パッケージ化して見ることができます。あなたのコード。したがって、アップロードするディレクトリとファイルの種類を制御する必要があります。通常、アップロードできるのは画像のみです。

ファイル アップロード フォームを作成する
ユーザーがフォームからファイルをアップロードできるようにすると非常に便利です。
ファイルをアップロードするには、以下の HTML フォームを参照してください:

コードをコピーします コードは次のとおりです:


enctype="multipart/form-data">





;/html>


このフォームについては次の点に注意してください:
タグの enctype 属性は、フォームを送信するときに使用するコンテンツ タイプを指定します。フォームにファイル コンテンツなどのバイナリ データが必要な場合は、「multipart/form-data」を使用します。
タグの type="file" 属性は、入力をファイルとして処理することを指定します。たとえば、ブラウザでプレビューすると、入力ボックスの横に参照ボタンが表示されます。
注: ユーザーにファイルのアップロードを許可すると、セキュリティ上の大きなリスクが生じます。信頼できるユーザーのみにファイルのアップロード操作を許可してください。
アップロード スクリプトを作成します
「upload_file.php」ファイルには、ファイルをアップロードするためのコードが含まれています:



コードをコピーします
コードは次のとおりです: if ($_FILES["file"] ["エラー" ] >
{
echo "エラー: " . $_FILES["ファイル"]["エラー"]
}
else
echo "; : " . $ _FILES["file"]["name"] . "
";
echo "タイプ: " . $_FILES["file"]["type"] . "
";
echo "サイズ: " . ($_FILES["file"]["size"] / 1024) . " Kb
";
echo "保存場所: " . $_FILES["file "][" 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["ファイル"]["タイプ"] == "画像/gif")
|| ($_FILES["ファイル"]["タイプ"] == "画像/jpeg")
|| "ファイル"]["タイプ" ] == "画像/pjpeg"))
&& ($_FILES["ファイル"]["サイズ"] {
if ($_FILES["ファイル"] ["エラー"] > 0 )
echo "エラー: " . $_FILES["ファイル"]["エラー"]
}
else
echo "; : " . $_FILES["file "]["name"] . "
";
echo "タイプ: " . $_FILES["file"]["type"] . "
";
echo "サイズ : " . ($_FILES["file"]["size"] / 1024) . " Kb
";
echo "保存場所: " . $_FILES["file "]["tmp_name"];
}
}
else
{
echo "無効なファイル";
}
?>


注: IE の場合、認識される jpg ファイルの種類は pjpeg である必要があり、FireFox の場合は、認識される jpg ファイルの種類は pjpeg である必要があります。 、それはjpegでなければなりません。
アップロードされたファイルの保存
上記の例では、アップロードされたファイルの一時コピーをサーバーの PHP 一時フォルダーに作成します。
この一時的にコピーされたファイルは、スクリプトが終了すると消えます。アップロードしたファイルを保存するには、それを別の場所にコピーする必要があります:


コードをコピーします

コードは次のとおりです:

if ((($_FILES["file"]["type"] == "画像/gif")
|| ($_FILES["file"]["type"] == "画像/jpeg")
|| ($_FILES["ファイル"]["タイプ"] == "画像/pjpeg"))
&& ($_FILES["ファイル"]["サイズ"] {
if ($_FILES["file"]["error"] > 0)
{
echo "リターンコード: " . $_FILES["ファイル"]["エラー"] 。 "
";
}
else
{
echo "アップロード: " . $_FILES["ファイル"]["名前"] 。 "
";
「タイプ:」をエコーし​​ます。 $_FILES["ファイル"]["タイプ"] 。 "
";
「サイズ:」をエコーし​​ます。 ($_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["ファイル"]["名前"];
}
}
}
else
{
echo "無効なファイル";
}
?>

上のスクリプトでは、このファイルが存在するかどうかが検査され、存在しない場合は、指定されたファイルにファイルが保存されます。

http://www.bkjia.com/PHPjc/322755.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/322755.html技術記事為了网站的安全,肯定不让上传php文件,如果有人进入後台,上传了一php文件,你的网站资源,全部救变成他的了,直打包看你的...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。