Привет, ребята, я загружаю изображения с помощью загрузки файла @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
Также как предупреждение: ваш сценарий обработки загрузки сделает абсолютно тривиальным полностью подорвать ваш сервер:
$_FILES[...]['type']
что значение $_FILES[...]['type']
правильно установлено – это значение полностью находится под контролем пользователя, и они могут загружаться в «image / jpeg» и загружать любой тип файла, который они хотят $_FILES[...]['filename']
что значение $_FILES[...]['filename']
правильно установлено – опять же, это значение полностью находится под контролем пользователя, и они могут загружаться в «hackme.php», если они хотят Итак, что произойдет, если кто-то загрузит следующий файл:
$_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» и т. Д.