次の問題があります。入力フォームには、4 つの検証済みテキスト入力フィールド (空にすることはできません) と、同じフォームの下にある 3 つのファイル入力フィールドがあります。サイズが小さい画像をアップロードしようとすると、すべて正常に機能します。しかし、1MB 程度の大きな画像を選択すると、テキスト入力フィールドに入力したにもかかわらず、検証エラーが発生します。
$ime = mysql_real_escape_string($_POST['ime']);
$mesto = mysql_real_escape_string($_POST['mesto']);
$telefon = mysql_real_escape_string($_POST['telefon']);
$emajl = mysql_real_escape_string($_POST['emajl']);
$opis = mysql_real_escape_string($_POST['opis']);
if ((empty($ime)) || (empty($mesto)) || (empty($telefon)) || (empty($emajl))){echo "Moraju biti uneti podaci u obavezna polja"; exit;}
//unos slike1
if ((($_FILES["slika1"]["type"] == "image/gif")
|| ($_FILES["slika1"]["type"] == "image/jpeg")
|| ($_FILES["slika1"]["type"] == "image/jpg")
|| ($_FILES["slika1"]["type"] == "image/pjpeg")
|| ($_FILES["slika1"]["type"] == "image/x-png")
|| ($_FILES["slika1"]["type"] == "image/png"))
&& ($_FILES["slika1"]["size"] < 2097152))
{
if ($_FILES["slika1"]["error"] > 0)
{
echo "Greška: " . $_FILES["slika1"]["error"] . "<br>";
}
else
{
$razdvajanje = explode('.',$_FILES['slika1']['name']);
$ekstenzija = $razdvajanje[1];
$novoime = mysql_real_escape_string($razdvajanje[0]).'_'.time();
$putanja = 'uploads/' . $novoime . "." . $ekstenzija;
move_uploaded_file($_FILES['slika1']['tmp_name'], $putanja);
}
}
else
{
echo "Slika mora biti manja od 2MB i u adekvatnom formatu";
フィールドが空でなくても、「Moraju biti uneti podaci u obavezna polja」というエラーが表示されます。大きな画像を 1 つだけアップロードしようとすると、うまくいきます。1MB の画像を 3 つ同時にアップロードしようとすると、うまくいきません。
ただ明確にします。スクリプトは localhost (XAMPP) で動作しています。Web ホスティング サーバーにアップロードするときに問題が発生します。また、約 300kb の 3 つの画像ファイルをアップロードするとスクリプトは機能しますが、約 1MB のサイズのファイルを 3 つアップロードしようとすると、プロセスは約 60% で失敗します。問題はサイズではなく、アップロード時間だと思います。