2013-11-13 3 views
0

У меня есть следующий PHP-код, который позволяет пользователю загружать изображение. Как я могу изменить свой код, чтобы на размер загружаемого изображения был предел (скажем, maxun 20 k). Вот мой код.Как ограничить размер файла загрузки php

<?php 
/// another code /// 
if($_POST) 
{ 

    if(!isset($_FILES['mFile'])) 
    { 
     //required variables are empty 
     die("Please add a image"); 
    } 

    if($_FILES['mFile']['error']) 
    { 
     //File upload error encountered 
     die(upload_errors($_FILES['mFile']['error'])); 
    } 

    $FileName   = strtolower($_FILES['mFile']['name']); 
    $auto       = mysql_real_escape_string($_POST['auto']); 
    $FileType   = $_FILES['mFile']['type']; //file type 
    $FileSize   = $_FILES['mFile']["size"]; //file size 


      if(move_uploaded_file($_FILES['mFile']["tmp_name"], $UploadDirectory . $NewFileName)) 
     { 


     mysql_query("INSERT INTO posts (title, post, img_name) VALUES ('$FileTitle', '$postURL', '$NewFileName')"); 

     die('Thank you for your submission.'); 

    }else{ 
     die('There seems to be a problem. please try again.'); 
    } 
} 
/// another code /// 
?> 
+0

20К для изображения? Насколько малы вы хотите, чтобы они были? – putvande

+1

'if ($ _ FILES [" mFile "] [" size "] <90000) {// ваш код}' – Prafulla

ответ

-2

theres параметр в php.ini, где вы можете ограничить его. Некоторые ppl используют скрытое поле для этой цели, но мне не нравится tbh.

1

Установите его как этот

<?php 
ini_set('post_max_size', '20K'); 
ini_set('upload_max_filesize', '20K'); 
+0

Это также приведет к тому, что '$ _POST' будет пустым, если загрузка превышает 20K. – Ben

+0

@Ben, это правильно. Вот почему я установил '2MB' раньше, когда' putvande' попросил изменить его как '20K'. –

1

Есть несколько способов сделать это:

Программным:

ini_set('post_max_size', '20K'); 
ini_set('upload_max_filesize', '20K'); 

Via php.ini:

post_max_size = 20K 
upload_max_filesize = 20K 

Via. htaccess:

php_value upload_max_filesize 20K 
php_value post_max_size 20K 
+0

Это также приведет к тому, что '$ _POST' будет пустым, если загрузка более 20K – Ben

1

это персональный образец предела для использования размера ПОС, которые загружены, изменение таблицы и вары

$picture = $_FILES['pic']['name']; 
$picsize = $_FILES['pic']['size']; 
$pictype = $_FILES['pic']['type']; 

if(!empty($picture)){ 
     if(($pictype == 'image/gif') || ($pictype == 'image/jpeg') || ($pictype == 'image/pjpeg') || ($pictype == 'image/png') && ($picsize > 0) && ($picsize <= 30000)){ 
      if($_FILES['pic']['error'] == 0) 
       { 
       $target = UPLOADPATH . $user_name; 
       echo $target; 
       if(move_uploaded_file($_FILES['pic']['tmp_name'], $target)) 
       { 
        $query2 = "UPDATE users SET profile_image = '{$user_name}' WHERE user_name = '{$user_name}'"; 
        $result2 = mysql_query($query2); 
       } 
       } 
      else{ 
       echo 'upload failed'; 
      } 


     } 
     elseif(($pictype != 'image/gif') && ($pictype != 'image/jpeg') && ($pictype != 'image/pjpeg') && ($pictype != 'image/png')){ 
      echo 'incorrect file type'; 
     } 
     elseif(($picsize <= 0) || ($picsize > 30000)) 
     { 
      echo 'incorrect file size'; 
     } 
Смежные вопросы