montano 0 Denunciar post Postado Janeiro 14, 2010 Boa tarde, Nao estou conseguindo achar a extensao de um arquivo: function findExt($filename) { $ext = strrchr($filename, '.'); if ($ext) { return $ext; } else { return "unknown"; } } $tipo = $this->findExt($_FILES['userfile']['type']); // Soh como exemplo Ele me retorna unknown sempre. vlw Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Cruz 1 Denunciar post Postado Janeiro 14, 2010 Use o pathinfo() <?php $path_parts = pathinfo('/www/htdocs/index.html'); echo $path_parts['dirname'], "\n"; echo $path_parts['basename'], "\n"; echo $path_parts['extension'], "\n"; echo $path_parts['filename'], "\n"; // desde o PHP 5.2.0 ?> http://br2.php.net/manual/pt_BR/function.pathinfo.php Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 14, 2010 ['type'] vai te devolver algo como: [type] => image/jpeg http://br2.php.net/manual/en/reserved.variables.files.php se quer trabalhar pra achar a extenção apartir do ponto ( . ), tente com o ['name'] Mas ainda assim, atente ao retorno da função que você usou: http://br2.php.net/strrchr Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Janeiro 14, 2010 informações do tipo image/jpeg eu consigo retornar soh usando o [userfile][type] eu queria pegar apartir do ponto mesmo.. e consegui usando o [userfile][name], claro é no nome que contem o .no [type] ele nem informa .jpg e sim /jpg. valeu pessoal. Tenho uma outra duvida eu posso fazer usando GET pq quero fazer por AJAX e nao sei trabalhar com POST com ajax. seria a mesma coisa? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 14, 2010 Sim, 'tanto faz'. O que diferencia GET de POST é a quantidade de informações que você pode enviar, e a segurança da aplicação, já que por GET os dados enviados ficarão mais expostos.. e a página que recebe eles, pode ser 'testada' por qualquer um.. Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Janeiro 14, 2010 William esta dando um erro: [14-Jan-2010 15:26:03] PHP Warning: move_uploaded_file(/home/teste/public_html/extranet/Dicas/imagens/dir/alex.png) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: No such file or directory in /home/teste/App/model/dao/UploadDao.php on line 72 [14-Jan-2010 15:26:03] PHP Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move '/tmp/phpnil8Qc' to '/home/teste/public_html/extranet/Dicas/imagens/dir/alex.png' in /home/apul/App/model/dao/UploadDao.php on line 72 classe <?php //Verificação de Segurança $url = $_SERVER['PHP_SELF']; if (eregi("UploadDao.php", "$url")) { header("Location: ../index.php"); } require_once ('Executar.php'); class UploadDao extends Executar { public $tipo; public $nome; public $tamanho; function __construct() { require ('/home/teste/App/config/config.php'); parent::__construct($servidor, $usuario, $senha, $bd); } function execute() { $tipos[0] = ".gif"; $tipos[1] = ".jpg"; $tipos[2] = ".jpeg"; $tipos[3] = ".png"; if (isset($_FILES['userfile'])) { if ($this->UploadArquivo("/home/teste/public_html/extranet/Dicas/imagens/dir/", $tipos)) { $nome = $this->nome; $tipo = $this->tipo; $tamanho = $this->tamanho; } else { echo "Falha no envio<br />"; } } } function findExt($filename) { $ext = strrchr($filename, '.'); if ($ext) { return $ext; } else { return "unknown"; } } function UploadArquivo($pasta, $tipos) { if (isset($_FILES['userfile'])) { $name = $_FILES['userfile']['name']; $tipo = $this->findExt($_FILES['userfile']['name']); $tamanho = $_FILES['userfile']['size']; foreach ($tipos as $type){ if ($type == $tipo) { $arquivoPermitido = true; } } if ($arquivoPermitido == false) { echo "Extensão de arquivo não permitido!!"; exit; } if (move_uploaded_file($_FILES['userfile']['tmp_name'], $pasta . $name)) { $this->nome = $name; $this->tipo = $tipo; $this->tamanho = number_format($tamanho / 1024, 2) . "KB"; return true; } else { return false; } } } } ?> Nao entendi o erro tambem. :S Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Cruz 1 Denunciar post Postado Janeiro 14, 2010 Cara, você pode fazer assim: function findExt($filename) { $path_parts = pathinfo($filename); return $path_parts['extension']; } Na função move_uploaded_file, o segundo parâmetro acho que tem que ser relativo (algo como ./extranet/Dicas/imagens/dir/ ) Pra verificar se a extensão é permitida, pode usar o in_array(), mas tem que remover o . antes dos tipos no array: //lista de tipos permitidos $tipos = array('gif', 'jpg'); function UploadArquivo($pasta, $tipos) { if (isset($_FILES['userfile'])) { $name = $_FILES['userfile']['name']; $tipo = $this->findExt($_FILES['userfile']['name']); $tamanho = $_FILES['userfile']['size']; //verifica se aceita tipo do arquivo if (in_array($tipo, $tipos) == FALSE) { echo "Extensão de arquivo não permitido!!"; exit; } if (move_uploaded_file($_FILES['userfile']['tmp_name'], $pasta . $name)) { $this->nome = $name; $this->tipo = $tipo; $this->tamanho = number_format($tamanho / 1024, 2) . "KB"; return TRUE; } else { return FALSE; } } } Compartilhar este post Link para o post Compartilhar em outros sites