Jump to content


Photo

Dúvida Upload.


  • Faça o login para participar
2 replies to this topic

#1 donizeth

donizeth

    Normal

  • Usuários
  • 77 posts
  • Sexo:Masculino

Posted 13/07/2008, 19:36

Bom galera, to com uma duvida em uma funcao aqui de enviar uploads, eu queria fazer que quando algum campo tiver com extensao invalida, ele nao manda nenhum campo pro servidor, ele so enviara todas as fotos ou nenhuma, do jeito que ta aqui, ele so cancela a que ta errada, e manda as outras pro servidor, isso seria bem ruim caso o usuario fizesse alguma imagem errada, mandaria varias vezes pro servidor enxendo das mesmas fotos... segue abaixo o codigo:

<?php

$dir = 'C:/tempo/' . DIRECTORY_SEPARATOR;
$datahora = date("Ymd_His");

$arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;

for ($i = 0; $i < count($arquivo['name']); $i++)
{

	//Verificando se o arquivo contém a extensão declarada em $invalidos:
	$validos = array('.png', '.doc', '.pdf');
	$checa = substr($arquivo['name'][$i], -4);
	
	//Se os arquivos estiverem corretos, faz o envio:	
	if (in_array($checa, $validos)) 
	{
	if (move_uploaded_file($arquivo['tmp_name'][$i], $dir . $datahora . $arquivo['name'][$i]))
	{
		echo "<p><strong>Enviado:</strong> " . $datahora . $arquivo['name'][$i] . " | " . round($arquivo['size'][$i] / 1024, 2) . " kB | " . $arquivo['type'][$i] . "</p>";
	}
	}
	//Se estiverem errados, faz o cancelamento do envio:
	else
	{
		echo "<p><strong>Não enviado: </strong> " . $arquivo['name'][$i] . " | " . round($arquivo['size'][$i] / 1024, 2) . " kB | " . $arquivo['type'][$i] . "</p>";
	}
}
?>

lembrando que no meu form, os campos estao em modo de array tb, name="arquivo[]"... se alguem puder me ajudar nessa parada ai, fico muito agradecido, obrigado a todos...

#2 Inu

Inu

    Veterano

  • Usuários
  • 1138 posts
  • Sexo:Masculino
  • Localidade:Canela, Rio Grande do Sul, Brasil

Posted 14/07/2008, 19:51

Já experimentastes trocar a função que envia os arquivos de lugar?
Quem sabe, colocando uns if() e trocando algumas coisinhas, tu conseguirás o que queres...

#3 donizeth

donizeth

    Normal

  • Usuários
  • 77 posts
  • Sexo:Masculino

Posted 14/07/2008, 20:47

Inu, vlw pela ajuda, fui futricando, futricando, e xeguei nesse codigo, so que o mesmo problema ocorre.

<form name="form1" method="POST" enctype="multipart/form-data" action="<?php echo $_SERVER["PHP_SELF"];?> ">

<input type="file" name="arquivo[]" />
<br />
<input type="file" name="arquivo[]" />
<br />
<input type="file" name="arquivo[]" />
<br />
<input type="hidden" name="MAX_FILE_SIZE" value="300" />
<input type="submit" name="Enviar" value="Enviar" />
<br />
</form>
</body>

<?php

$dir = 'C:\tempo' . DIRECTORY_SEPARATOR;
$datahora = date("dmY_His");

$arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;

for ($i = 0; $i < count($arquivo['name']); $i++)
	{
	$erro = "";
	$fotos = $_FILES['arquivo']['name'][$i];

	if(substr($fotos, -4) != '.png')
	{ $erro = "Extensao invalida <br>"; }
	
	if ($arquivo['size'][$i] > 153600)
	{ $erro = "Tamanho inválido <br>"; }
	
	if($erro != "") { echo $erro; }
	else {
	move_uploaded_file($arquivo['tmp_name'][$i], $dir . $datahora . $arquivo['name'][$i]);
	
	echo "<p>Os seguintes arquivos foram enviados com sucesso: $dir $datahora $fotos </p>";
	}
	}
?>

se puderes me ajudar, fico grato... o problema ta em arrays, se cada campo tivesse um nome, seria mais facil, so que o codigo iria ficar imenso.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq