EGS 0 Denunciar post Postado Junho 5, 2012 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
Wanderson Valerio 102 Denunciar post Postado Junho 5, 2012 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
EGS 0 Denunciar post Postado Junho 7, 2012 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
FernandoPhP 9 Denunciar post Postado Junho 7, 2012 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
Wanderson Valerio 102 Denunciar post Postado Junho 7, 2012 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
EGS 0 Denunciar post Postado Junho 8, 2012 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
Wanderson Valerio 102 Denunciar post Postado Junho 8, 2012 Você quer fazer o upload de três imagens de uma só vez? Compartilhar este post Link para o post Compartilhar em outros sites
EGS 0 Denunciar post Postado Junho 8, 2012 sim Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Junho 8, 2012 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
EGS 0 Denunciar post Postado Junho 8, 2012 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
Wanderson Valerio 102 Denunciar post Postado Junho 8, 2012 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
EGS 0 Denunciar post Postado Junho 8, 2012 eu vou dar uma olhada no uploadify e depois eu falo se tive algum problema. Vlw pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Junho 8, 2012 Ok, qualquery coisa pode enviar aqui pro fórum! :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites