我遇到以下问题。我使用带有四个经过验证的文本输入字段(不允许为空)的输入表单,并在同一表单下使用三个文件输入字段。当我尝试上传尺寸较小的图像时,一切正常。但是,当我选择一个较大的图片时,如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”,即使该字段不是空的。当我尝试上传一个较大的图像时,它也可以工作。当我尝试同时上传三个1MB图像时,这只会无法正常工作。
只是要清楚。脚本正在使用localhost(XAMPP)。我在上传到我的虚拟主机服务器时遇到问题。另外,当我上传大约300kb的3个图像文件时,该脚本正在工作,但是当我尝试上传3个大小约为1MB的文件时,该过程失败的时间大约为60%。我认为这个问题不大,但在上传时间。
不行。 –
我已经更新了答案。也许你需要设置最大文件上传。确保它在别的之前运行 –