pinoc 2 Denunciar post Postado Outubro 18, 2012 Seguinte minha duvida acho que é facil de resolver, to precisando fazer um upload de arquivo até ai sem problema sei fazer tranquilo porem preciso fazer o upload permitir apenas arquivos em PDF ou DOC esse negocio de permição do arquivo que ta o meu problema não faço a minima como fazer. Se alguem pode me ajudar agradeço muito.. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Outubro 18, 2012 Faça ua verificação com preg_match: if(preg_match("/\.(pdf|doc){1}$/i", $arquivo['name'], $extensao)){ /* $extensao = extensao do arquivo */ $ext = end($entensao); $nome = 'arquivo'.'.'.$ext; } Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Outubro 18, 2012 <?php // Função que recupera a extensão do arquivo function getType($fileName) { $type = strtolower(end(explode('.', $fileName))); return $type; } // Verificando $img = $_FILES['minhaImagem']; $type = getType($img['name']); $allow = array('jpg', 'pdf', 'jpeg', 'pjpeg', 'png', 'gif'); if(!in_array($type, $allow)) { // Se a extensão do arquivo não for permitida die('Arquivo em formato inválido.'); } else { // Continue com o upload } ?> Não deu para eu testar, mas creio que dará certo! Qualquer coisa assovia aqui! Boa sorte! Compartilhar este post Link para o post Compartilhar em outros sites
Raul Silva 41 Denunciar post Postado Outubro 18, 2012 Não recomendo fazer essa verificação somente pela extensão. Mas sim pelo mime. Fiz essa classe as pressas pra um projeto pequeno. Vou colocar o uso e depois a classe: Espero que isso possa lhe ajudar. Estou indo para a casa, abraços. Upload.php <?php require_once 'class.upload.php'; $upload = new Upload; // Fazendo o upload do cv $upload->setPath('cvtemp'); $upload->setFile($_FILES['cv']); $upload->setPermitedExtensions(array('doc', 'docx')); $upload->setMimeAllowed(array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/msword')); $file = $upload->doUpload(); if($file == FALSE){ die('nao foi possivel fazer o upload'); } unlink($file); ?> class.upload.php <?php Class Upload { private $_permited_extensions; private $_mime_verify; private $_mime_allowed; private $_path; private $_file; public function __construct() { $this->_permited_extensions = array(); $this->_mime_verify = FALSE; $this->_mime_allowed = array(); } public function doUpload() { if(!$this->verifyExtension($this->_file)){ return FALSE; } if(move_uploaded_file($this->_file['tmp_name'], $this->_path . '/' . $this->_file['name'])){ return $this->_path . '/' . $this->_file['name']; } return FALSE; } public function setFile($file) { $this->_file = $file; } public function setPath($path) { $this->_path = $path; } public function setMimeAllowed($mimes = array()) { if(count($mimes)>0){ $this->_mime_verify = TRUE; } $this->_mime_allowed = $mimes; } public function getMimeAllowed() { return $this->_mime_allowed; } public function setPermitedExtensions($exts = array()) { $this->_permited_extensions = $exts; } public function getPermitedExtensions() { return $this->_permited_extensions; } public function mimeVerify($is_mime_verify) { $this->_mime_verify = $is_mime_verify; } public function isMimeVerify() { return $this->_mime_verify; } private function verifyExtension($objfile) { $pass = TRUE; $x = explode('.', $objfile['name']); $ext = $x[count($x)-1]; // Checking the extension if(!in_array($ext, $this->getPermitedExtensions())){ $pass = FALSE; } // Checking the mime if it is set if($this->isMimeVerify()) { if(!in_array($objfile['type'], $this->getMimeAllowed())) { $pass = FALSE; } } return $pass; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Outubro 19, 2012 Cara ta testando o seu deu erro da function ali. Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Outubro 19, 2012 O meu? Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Outubro 19, 2012 O meu? Sim da um erro, estranho. Se bem que tambem tem que ver se não to fazendo caca. function getType($fileName) { $type = strtolower(end(explode('.', $fileName))); return $type; } // Verificando $arq = $_FILES['arquivo']; $type = getType($arq['name']); $allow = array('pdf', 'doc'); $pag = $_POST['pag']; $arquivo = $arq['name']; $tmp = $arq['tmp_name']; $pasta = '../arquivos/'; if(!in_array($type, $allow)) { // Se a extensão do arquivo não for permitida echo"<script language=javascript>alert('Formato invalido.')</script>"; echo"<script language=javascript>location.href='$pag'</script>"; exit; }else{ if(move_uploaded_file($tmp, $pasta.$arquivo)){ echo"<script language=javascript>alert('Arquivo enviado.')</script>"; echo"<script language=javascript>location.href='$pag'</script>"; exit; } } Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Outubro 19, 2012 É por causa do nome da função. getType é uma função que existe no php, portanto, só mudar o nome e problema resolvido. Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Outubro 19, 2012 Será? Qual o erro? Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Outubro 19, 2012 Sim, pode testar e ver, gettype serve como um var_dump, mas diferente. Exemplo: $array = array('este', 'é', 'uma', 'array'); $type = gettype($array); echo $type; //Saída: array Mude a função para esse nome, por exemplo, getTypeFile: function getTypeFile($fileName) { $type = strtolower(end(explode('.', $fileName))); return $type; } Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Outubro 19, 2012 Realmente funciono ;) Obrigado a todos pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Outubro 19, 2012 Estamos aqui pra isso! Qualquer coisa é só assoviar! Bom moderadores, acho que podem fechar! Compartilhar este post Link para o post Compartilhar em outros sites