Ir para conteúdo

POWERED BY:

Arquivado

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

EGS

Restringir uoload

Recommended Posts

Olá galera, eu sei que esta é uma dúvida meiu boba pra vcs, mas está me causando o maior problemão. Bom o que está acontecendo é que eu tenho um sistema de upload no meu site e ele está funcionando bem, so que eu quero restringir esse upload a imagens somente, já que ele faz o upload de qualquer arquivo, então eu tentei usar o seguinte código:

 


if $filename {  
   // Verifica se o mime-type do arquivo é de imagem
   if (!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$filename["type"])) {
       $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo";
   } else {

 

 

Eu coloquei ele no seguinte script:

 


<?php

$allowUpload = true;





if(isset($_POST['fileUpload']))
{
   $copyrightOwnerName = $_POST['copyrightOwnerName'];

   if($copyrightOwnerName != "")
   {
       if($enableSimplePassword && ($uploadPassword != $simpleUploadPassword))
       {
           print "Invalid password.<br>";
           $allowUpload = true;
       }
   }
   else
   {

       $allowUpload = true;
   }
}
else
{
   $allowUpload = true;
}

if($allowUpload)
{



   foreach($_FILES["uploadFiles"]["error"] as $key => $error) 
   {
       if($error == UPLOAD_ERR_OK) 
       {



           $tmpFilename = $_FILES["uploadFiles"]["tmp_name"][$key];
           $filename =  tira_acento ($_FILES["uploadFiles"]["name"][$key]);

if $filename {  
   // Verifica se o mime-type do arquivo é de imagem
   if (!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$filename["type"])) {
       $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo";
   } else {



           move_uploaded_file($tmpFilename,$permFilename) or die("Failed to upload file: $permFilename");

echo "Upload feito com sucesso";


       }
?>

 

So que não funciona de jeito nenhum, sempre dá erro. O que é que tá errado, por favor me ajudem ai.Vlw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá caro amigo, o que você vai implementar no seu código é isso:

 

<?php
$type = strtolower(end(explode(".", $arquivo['name']))); // Recupera a extensão do arquivo
$allow = array("jpg", "jpeg", "png", "gif"); // Extensões aceitas?
if (in_array($type, $allow)) { 
   // Aqui somente o código do upload, esquece a validação do tipo
}else{
   echo "Arquivo inváliado";
}
?>

 

Qualquer dúvida é só postar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Wanderson, vlw pela ajuda msm, porém eu tentei aplicar o código que você me passou e não consegui, porque ele recusa todo tipo de arquivo que eu tento carregar, até msm as imagens com as extenções jpg, jpeg, png e gif. o que eu fiz foi o seguinte:

 


$type = strtolower(end(explode(".", $fileUpload['name']))); // Recupera a extensão do arquivo
$allow = array("jpg", "jpeg", "png", "gif"); 
if (in_array($type, $allow)) { 

        move_uploaded_file($tmpFilename);

echo "Upload feito com sucesso";


}else{
   echo "Arquivo inváliado";
}

 

Sempre dá a mensagem "Arquivo invalido" e não faz o upload. O que pode estar errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

	if(!preg_match("#^image/(pjpeg|jpeg|png|gif|bmp)$#i", $filename["type"])){
    	   $erro[] =  "Isso não é uma imagem.";
  	 	} 

 

Retirei esse código de outro fórum, em caso de dúvida da uma olhada na fonte:

 

Link não autorizado removido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, essa $fileUpload existe?

 

Posta o seu código para vermos, estamos quase concluindo!

 

Olá só um script que fiz rapidinho para você

<?php
$fileUpload  = $_FILES['nome_que_esta_no_form']; // Aqui tem que ser o mesmo nome do formulário
$tmpFilename = $fileUpload["tmp_name"]; // Local do arquivo no seu computador
$pasta       = "caminho_do_arquivo_a_ser_updado"; // Aqui o caminho da pasta que o arquivo vai ser enviado

$type = strtolower(end(explode(".", $fileUpload['name']))); // Recupera a extensão do arquivo
$allow = array("jpg", "jpeg", "png", "gif"); // Extensões aceitas para o upload 
$nome_final = date("dmY")."_".time().".".$type; // Cria um nome randômico para o arquivo (Aconselhável)

if (in_array($type, $allow)) { // Se a extensão estiver no array
	move_uploaded_file($tmpFilename, $pasta.$nome_final); // Faz o upload do arquivo
	echo "Upload feito com sucesso"; // Mensagem de sucesso
}else{
	echo "Arquivo inváliado"; // Mensagem de erro
}
?>

 

A tag de abertura do seu formulário deve conter o atributo enctype, ficaria desse jeito

<form name="nome_do_form" method="post" enctype="multipart/form-data">

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw pela ajuda Wanderson, o meu script é esse ai, e continua dando a mensagem de erro com qualuqer arquivo:

 


<?php

$allowUpload = true;




   foreach($_FILES["uploadFiles"]["error"] as $key => $error) 
   {
        if($error == UPLOAD_ERR_OK) 
       {

           $tmpFilename = $_FILES["uploadFiles"]["tmp_name"][$key];
           $filename =  tira_acento ($_FILES["uploadFiles"]["name"][$key]);
           $permFilename = $uploaddir.$filename;


       $fileUpload  = $_FILES["uploadFiles"]; 
       $tmpFilename = $fileUpload["tmp_name"];


       $type = strtolower(end(explode(".", $fileUpload['name']))); // Recupera a extensão do arquivo
       $allow = array("jpg", "jpeg", "png", "gif"); // Extensões aceitas para o upload 

       if (in_array($type, $allow)) {


           move_uploaded_file($tmpFilename,$permFilename) or die("Failed to upload file: $permFilename");


echo "Upload feito com sucesso";

}else{

echo "Arquivo inváliado"; // Mensagem de erro
       }



       }
   }

?>


<form action ="" method="post" name="uploadForm" enctype="multipart/form-data">
<table id="formTable" border=0 align=center >



<tr><td style="color: black;">Arquivo 1</td><td><input type="file" name="uploadFiles[]" /></td></tr>
<tr><td style="color: black;">Arquivo 2</td><td><input type="file" name="uploadFiles[]" /></td></tr>
<tr><td style="color: black;">Arquivo 3</td><td><input type="file" name="uploadFiles[]" /></td></tr>

<tr><td> </td><td><input type="submit" value="Upload" /></td></tr>
</table>
<input type="hidden" name="fileUpload">
</form>

 

Vlw pela ajuda ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer isso de uma forma mais legal e amigável.

apresento lhe o plugin uploadify.

 

Ele faz o upload de vários arquivos ao mesmo tempo.

Você tem skype?

Dá fica mais fácil para nos falarmos e apresento para você como implementa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum eu não tenho skype não, mas ocontece é que eu precisava utilizar esse sistema de upload, não tem como restringir os arquivos com ele não...Ou pelo menos impedir alguns tipos de serem upados como por exemplo html,php?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, nele você escolha os tipos de arquivos que poderão ser upados, esse plugin é muito bom, e você ainda seleciona todos os arquivos que quer enviar ao servidor, de uma só vez.

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.