Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jobless

Limitar tamanho da imagem no upload

Recommended Posts

Estou implementando este sistema de upload de fotos, e tentei fazer com que os arquivos a serem upados, no caso as "fotos" tenham limite.

 

Exemplo:

 

Ao estipular um limite de 500kb. O usuário não possa fazer o upload de um arquivo de foto maior que esse valor..

 

Se alguém puder me ajudar a icrementar essa opção nesse script eu agradeço e posto ele modificado para uso dos demais.

 

Segue o script desenvolvido:

<?php

//Diretório aonde ficará os arquivos
$dir = "./ima/";

//Extensões permitidas
$ext = array("GIF","giff","gif","jpg","png","jpeg","bmp","JPG");

//Quant. de campos do tipo FILE
$campos = 4;

//Formulário
echo '<form method="post" action="'.$PHP_SELF.'" enctype="multipart/form-data">
  Arquivo: <input type="file" name="file[]"><p>

  Arquivo: <input type="file" name="file[]"><p>

  Arquivo: <input type="file" name="file[]"><p>

  Arquivo: <input type="file" name="file[]"><p>


  <input type="submit" name="submit" value=" OK ">
  </form>';
 

 
 
//Se for enviado
if (isset($_POST['submit'])) {
	

//Obtendo info. dos arquivos

$f_name = $_FILES['file']['name'];
$f_tmp = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];



//Contar arquivos enviados
$cont=0;

//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){

//Pegando o nome
$name = $f_name[$i];
$file_info = pathinfo($name);
$md5_name = substr(md5(microtime()),0,32) .'.'. $file_info['extension'];

$ext = explode( '.' , $name );



//Verificando se o campo contem arquivo
  if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {
	  

	if ($cont==0) {
	  echo "<b>Arquivo(s) enviados:<p>
</b>";
	}
	  echo $name."<p>";
	  
	  
	  $ponto= "";
	  //Movendo arquivo's do upload
	 $up = move_uploaded_file($f_tmp[$i], $dir . $md5_name);

		//Status
		if ($up==true):
			echo  "<i>Enviado!</i>";
			  $cont++;
		else:
			echo "<i>Falhou!</i>";
		endif;

	  echo "
";
  }

}

echo ($cont!=0) ? "<p><i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!";

}

?>

 

Valeu! :blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

adiciona no teu codigo :

 

$f_size = $FILES['file']['size'];

if($f_size > 500){
echo 'erro, tamanho maior que o permitido';
}

to com pressa entao acho que deu pra entender...

 

espero que ajude ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera eu fiz como me indicaram mas será que eu implementei em lugar errado?

 

Mesmo a imagem tendo menos que 500kb ta retornando erro, tamanho maior que o permitido...

 

Me ajudem segue como eu implementei...

<?php

//Diretório aonde ficará os arquivos
$dir = "./ima/";

//Extensões permitidas
$ext = array("GIF","giff","gif","jpg","png","jpeg","bmp","JPG");

//Quant. de campos do tipo FILE
$campos = 4;

//Formulário
echo '<form method="post" action="'.$PHP_SELF.'" enctype="multipart/form-data">
  Arquivo: <input type="file" name="file[]"><p>

  Arquivo: <input type="file" name="file[]"><p>

  Arquivo: <input type="file" name="file[]"><p>

  Arquivo: <input type="file" name="file[]"><p>


  <input type="submit" name="submit" value=" OK ">
  </form>';
 

 
 
//Se for enviado
if (isset($_POST['submit'])) {
	

//Obtendo info. dos arquivos

$f_name = $_FILES['file']['name'];
$f_tmp = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];
$f_size = $_FILES['file']['size'];

if($f_size > 500){
echo 'erro, tamanho maior que o permitido';
}
else
{

//Contar arquivos enviados
$cont=0;

//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){

//Pegando o nome
$name = $f_name[$i];
$file_info = pathinfo($name);
$md5_name = substr(md5(microtime()),0,32) .'.'. $file_info['extension'];

$ext = explode( '.' , $name );



//Verificando se o campo contem arquivo
  if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {
	  

	if ($cont==0) {
	  echo "<b>Arquivo(s) enviados:<p>
</b>";
	}
	  echo $name."<p>";
	  
	  
	  $ponto= "";
	  //Movendo arquivo's do upload
	 $up = move_uploaded_file($f_tmp[$i], $dir . $md5_name);

		//Status
		if ($up==true):
			echo  "<i>Enviado!</i>";
			  $cont++;
		else:
			echo "<i>Falhou!</i>";
		endif;

	  echo "
";
  }

}

echo ($cont!=0) ? "<p><i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!";

}
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera eu fiz como me indicaram mas será que eu implementei em lugar errado?

 

Mesmo a imagem tendo menos que 500kb ta retornando erro, tamanho maior que o permitido...

 

Me ajudem segue como eu implementei...

<?php

//Diretório aonde ficará os arquivos
$dir = "./ima/";

//Extensões permitidas
$ext = array("GIF","giff","gif","jpg","png","jpeg","bmp","JPG");

//Quant. de campos do tipo FILE
$campos = 4;

//Formulário
echo '<form method="post" action="'.$PHP_SELF.'" enctype="multipart/form-data">
  Arquivo: <input type="file" name="file[]"><p>

  Arquivo: <input type="file" name="file[]"><p>

  Arquivo: <input type="file" name="file[]"><p>

  Arquivo: <input type="file" name="file[]"><p>


  <input type="submit" name="submit" value=" OK ">
  </form>';
 

 
 
//Se for enviado
if (isset($_POST['submit'])) {
	

//Obtendo info. dos arquivos

$f_name = $_FILES['file']['name'];
$f_tmp = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];
$f_size = $_FILES['file']['size'];

if($f_size > 500){
echo 'erro, tamanho maior que o permitido';
}
else
{

//Contar arquivos enviados
$cont=0;

//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){

//Pegando o nome
$name = $f_name[$i];
$file_info = pathinfo($name);
$md5_name = substr(md5(microtime()),0,32) .'.'. $file_info['extension'];

$ext = explode( '.' , $name );



//Verificando se o campo contem arquivo
  if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {
	  

	if ($cont==0) {
	  echo "<b>Arquivo(s) enviados:<p>
</b>";
	}
	  echo $name."<p>";
	  
	  
	  $ponto= "";
	  //Movendo arquivo's do upload
	 $up = move_uploaded_file($f_tmp[$i], $dir . $md5_name);

		//Status
		if ($up==true):
			echo  "<i>Enviado!</i>";
			  $cont++;
		else:
			echo "<i>Falhou!</i>";
		endif;

	  echo "
";
  }

}

echo ($cont!=0) ? "<p><i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!";

}
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguem pode me dar uma ajuda???

<td align="right">Cidade:</td>

<td>

<select name="cidade" onchange="">

<option name="Selecione">-- Selecione --</option>

<option name="Campo Bom">Campo Bom</option>

<option name="Canoas">Canoas</option>

<option name="Dois Irmãos">Dois Irmãos</option>

<option name="Estância Velha">Estância Velha</option>

<option name="Ivoti">Ivoti</option>

<option name="Novo Hamburgo">Novo Hamburgo</option>

<option name="São Leopoldo">São Leopoldo</option>

</select><br>

</td>

</tr>

<tr>

<td align="right">Bairro:</td>

<td>

<select name="bairro" >

<option name="Selecione">-- Selecione --</option>

</select><br>

 

preciso chamar a tabela "bairro" do database após selecionar a cidade, para somente exibir os bairros daquela cidade...

alguem pode me ajudar a configurar o evento "onchange" em Javascript

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lol é só usar filesize, veja:

 

<?php

if (filesize($_FILES['campo']['name']) > 500)) {echo 'Você ultrapassou o peso permitido';exit;}

?>

@Topic

Sobre sua duvida com onchange, procura estudar ajax ;x

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual dos milhoes de codigos acima...

eu vi num codigo fonte por ai que era programado em js, ou melhor, o onchange, chamava uma function , mas não tinha acesso a funtioun...

é, só isso que eu quero...

como programo a function no js pra puxa as tabela do banco...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Afinal o que você quer fazer? Limitar o tamanho do arquivo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é facil, veja:

 

<?php
$sql = mysql_query ("SELECT campo FROM tabela WHERE id = '1'");
$assoc = mysql_fetch_assoc ($sql);
echo '<select name="exemplo"><option>'.$assoc['nome'].'</option><option>'.$assoc['cidade'].'</option></select>';
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw, desculpa a inrolação e a intromissão no assunto, mais issso é o que estava faltendo para mim terminar meu projeto escolar...

se não funcionar retorno a este tópico...

Compartilhar este post


Link para o post
Compartilhar em outros sites

// Tamanho máximo do arquivo (em Kb) 
$_UP['tamanho'] = 2048; // 2Mb 

// Faz a verificação do tamanho do arquivo 
else if ($_UP['tamanho'] > $_FILES['arquivo']['size']) { 
echo "O arquivo enviado é muito grande, envie arquivos de até 2Mb."; 
}

isso te ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.