no limite de php definido para o tamanho da imagem (em MB ou KB)

Eu tenho o seguinte código php, que permite ao usuário fazer o upload de uma imagem. Como posso modificar meu código para que haja um limite (digamos 800 k máximo) para o tamanho da imagem carregada. Aqui está o meu código.

<?php if (isset($_FILES['profile'])===true) { if (empty($_FILES['profile']['name']) === true) { echo'Please choose an Image File !'; } else { $allowed = array('jpg', 'jpeg', 'gif', 'png'); $file_name = $_FILES['profile']['name']; $file_extn = strtolower(pathinfo($file_name, PATHINFO_EXTENSION)); $file_temp = $_FILES['profile']['tmp_name']; if (in_array($file_extn, $allowed) === true) { change_profile_image($session_user_id, $file_temp, $file_extn); header('Location: ' . $current_file); exit(); } else { echo'Incorrect file type! Allowed:'; echo implode(', ', $allowed); } } } if (empty($user_data['profile'])=== false ) { echo '', $user_data['name'], ' - Profile Image'; } ?> 

Ao alterar seu código para lidar com o cheque, você precisaria apenas adicionar a seguinte declaração

 if ($_FILES['profile']['size'] > 800*1024) { echo 'File size too large'; } else { // your code for processing uploaded image } 

Por exemplo

 < ?php if (isset($_FILES['profile'])===true) { if (empty($_FILES['profile']['name']) === true) { echo'Please choose an Image File !'; } else { if ($_FILES['profile']['size'] > 800*1024) { echo 'File size too large'; } else { $allowed = array('jpg', 'jpeg', 'gif', 'png'); $file_name = $_FILES['profile']['name']; $file_extn = strtolower(pathinfo($file_name, PATHINFO_EXTENSION)); $file_temp = $_FILES['profile']['tmp_name']; if (in_array($file_extn, $allowed) === true) { change_profile_image($session_user_id, $file_temp, $file_extn); header('Location: ' . $current_file); exit(); } else { echo'Incorrect file type! Allowed:'; echo implode(', ', $allowed); } } } } if (empty($user_data['profile'])=== false ) { echo '', $user_data['name'], ' - Profile Image'; } ?> 

Embora neste momento, com estas muitas afirmações if aninhadas, eu começaria a olhar para arrumar isso em algumas funções de upload ou possivelmente em uma aula.

Uma rota alternativa é definir a input oculta MAX_FILE_SIZE em seu formulário e, em seguida, verifique o valor do erro de $_FILES para um 2

HTML

  

PHP

 if ($_FILES['profile']['error'] == 2) { die('File too large'); } else { // upload code } 

Obviamente, esta solução pode ser contornada por alguém com Firebug ou Web Inspector, etc., alterando o valor antes da publicação do formulário

De acordo com o manual :

$_FILES['userfile']['size']

O tamanho, em bytes, do arquivo carregado.

Para usar isso:

 if($_FILES['profile']['size'] > $limit) die('Too large!');` 

Alternativamente, você poderia, naturalmente, fazer:

 if(filesize($_FILES['profile']['tmp_name']) > $limit) die('Too large!');` 
 $_FILES['uploaded_file']['size'] 

deve dar-lhe o tamanho do arquivo. Você pode usar uma declaração if

 $_FILES['uploaded_file']['type'] 

se quiser verificar o tipo de arquivo carregado

Isso deve ser o que você está procurando:

 $_FILES["file"]["size"] - the size in bytes of the uploaded file 

Fonte:

http://www.w3schools.com/php/php_file_upload.asp