ファイルのアップロードを含む PHP スクリプトへの HTTP POST が必要です。PHP スクリプトは、適切なタイプでないファイルや不正な形式のファイルを拒否する必要があります。
これの意味は
- アップロードが完了する前に PHP スクリプトが実行を開始し、
- ファイルの最初の X バイトを読み取り、
- アップロードが完了する前に接続を中止する可能性があります。
これらのそれぞれをどのように行うのですか?
PHP はアップロードを中止できません。$_FILES
ただし、ファイルが完全にアップロードされた後に検証できます。
この機能により、ユーザーはテキスト ファイルとバイナリ ファイルの両方をアップロードできます。PHP の認証機能とファイル操作機能を使用すると、誰がアップロードを許可され、アップロードされたファイルに対して何を行うかを完全に制御できます。
見る:
http://php.net/manual/en/features.file-upload.post-method.php
php.ini でファイルサイズを制限できます
upload_max_filesize 整数
アップロードされたファイルの最大サイズ。整数を使用する場合、値はバイト単位で測定されます。この FAQ で説明されているように、簡略表記も使用できます。
http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize
これはあなたが得ることができる最大のものです。
<?php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Invalid file";
}
?>