проблема с загрузкой изображений с загрузкой файла php

Привет, ребята, я загружаю изображения с помощью загрузки файла @PhP. Метод @ Если я загружаю 10 изображений за раз (каждое изображение имеет размер 2000/000). то функция сохранения по клику не работает. если я выгружаю 5 изображений или меньше пяти изображений, то его работа отлично работает с моим кодированием, я просто включаю свой php-код с этим сообщением <input value="Save" type="submit" name="SubSave" id="SubSave" onClick="return changes();">

  if($_POST['SubSave'] == "Save"){ $aid = $_GET['rid']; $updcount = $_POST['theValue']; if($_SESSION["almgtype"]==1 || (GetUserNoPhoto($_SESSION["almgid"]))>(GetTotalPhotoCount1($_SESSION["almgid"],$aid))) { $uid = $_SESSION["almgid"]; for($k=1;$k<=$updcount;$k++) { //echo $k; echo $_FILES["uploadfile"]["type"]; if($_FILES["uploadfile".$k]["name"]!="") { if(($_FILES["uploadfile".$k]["type"] == "image/gif") || ($_FILES["uploadfile".$k]["type"] == "image/jpeg")|| ($_FILES["uploadfile".$k]["type"] == "image/pjpeg") || ($_FILES["uploadfile".$k]["type"] == "image/png")) { if ($_FILES["uploadfile".$k]["error"] > 0) { echo "Error: " . $_FILES["uploadfile".$k]["error"] . "<br />"; } else { move_uploaded_file($_FILES["uploadfile".$k]["tmp_name"], "photoalbum/" . $_FILES["uploadfile".$k]["name"]); $uploadfile = "photoalbum/" . $_FILES["uploadfile".$k]["name"]; } $path = $uploadfile; $checklist = "select * from amt_photos1 where aid = '".trim($aid)."' and uid = '".trim($uid)."' and path = '".trim($path)."'"; $chkresult = mysql_query($checklist); if(mysql_num_rows($chkresult) == 0) { $i = 0; $path =$uploadfile; $result = "insert into amt_photos1 set uid = '".trim($uid)."', aid = '".trim($aid)."', path = '".trim($path)."', status = '0', createdby = '".$_SESSION["almgid"]."', createddate = now()"; $rowlist = mysql_query($result) or die("Error:(".mysql_error().")".mysql_error()); } /********************** if file already exist means ******************************************/ else { $err= "The Uploaded file name ".$path." Is already exisit in the Album. Rename It or try to add Any other Photos"; } /********************** if file already exist means ******************************************/ $path =""; $uploadfile = ""; $i = ""; } // file extention else { $err= "Unable To Upload The File Please Check The File Extention.Try Again Later"; } } } } } // if save close 

Вероятно, вам нужно изменить максимальный размер POST в файле конфигурации php.ini ( post_max_size ).

Вы можете использовать команду phpinfo() чтобы сбросить конфигурацию. Вероятно, как утверждают другие, вам необходимо увеличить размер загрузки и время выполнения.

Они могут быть изменены через файл .htaccess .

 php_value upload_max_filesize 20M php_value post_max_size 20M php_value max_execution_time 200 php_value max_input_time 200 

Также как предупреждение: ваш сценарий обработки загрузки сделает абсолютно тривиальным полностью подорвать ваш сервер:

  1. Вы слепо $_FILES[...]['type'] что значение $_FILES[...]['type'] правильно установлено – это значение полностью находится под контролем пользователя, и они могут загружаться в «image / jpeg» и загружать любой тип файла, который они хотят
  2. Вы слепо $_FILES[...]['filename'] что значение $_FILES[...]['filename'] правильно установлено – опять же, это значение полностью находится под контролем пользователя, и они могут загружаться в «hackme.php», если они хотят
  3. Вы вслепую записываете файл в каталог фотоальбома, но не проверяете, содержит ли предоставленное пользователем имя файла данные о пути

Итак, что произойдет, если кто-то загрузит следующий файл:

 $_FILES['uploadfile0']['type'] = 'image/gif'; $_FILES['uploadfile0']['filename'] = '../pwn_me.php'; 

Теперь вы счастливо поставили предоставленный пользователем PHP-скрипт ONTO YOUR WEBSERVER, и теперь они могут делать все, что захотят.

Кроме того, ваши запросы к базе данных вслепую вставляют те же данные в запросы, оставляя вас широко открытыми для SQL-инъекций. Кроме того, вы не проверяете конфликты имен файлов, пока ПОСЛЕ того, как вы переместили файл. Таким образом, кто-то может загрузить вредоносный скрипт, но только один раз для этого имени файла. Поздравляем, вы реализовали атаки с версией на свой сервер. У вас будут «pwn_me.php», «pwn_me2.php», «pwn_me3.php», «my_little_pwnme.php» и т. Д.