Ir para conteúdo

Arquivado

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

IgorC

Somente imagens no type="file"

Recommended Posts

Você pode restringir ao receber os arquivos via post e validar pelo mime-type

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim eu acabei de achar artigos sobre mime types... Obrigado.


Porém, como eu posso utilizar este mimetype? Estou com um pouco de dificuldade de entender, você pode me mostrar um exemplo de como ficaria o código com o html...? Segue o link do mimetype: http://forum.imasters.com.br/topic/447451-como-definir-os-mime-types-validos-de-um-tipo-de-arquivo/#entry1768587

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Dian Carlos, primeiramente obrigado por responder, eu já havia pesquisado e encontrado resultados sobre o accept, porém pelo que eu li se você renomear um executável para .jpg por exemplo ele aceita sem problemas, e se eu escolher um arquivo qualquer que não for imagem ele não retorna nenhum erro do tipo: "somente imagens do tipo ... são aceitas." O que eu quero mesmo e vi que se adepta as minhas necessidades são os MimeTypes mas estou com dificuldades pra implementar em meu código pois o autor do post não fez nenhum exemplo e estou meio confuso aqui, rs. http://forum.imasters.com.br/topic/447451-como-definir-os-mime-types-validos-de-um-tipo-de-arquivo/#entry1768587

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não tem muito o que explicar, o que faltou lá foi apenas o html.

<?php


if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' )
{    
    function getMimeTypes( array $extensions )
    {
        // coloque o caminho para o local onde foi salvo o arquivo MimeTypes
        $mimes = file_get_contents( 'Mime/MimeTypes', FILE_USE_INCLUDE_PATH );
        $mime_types = array( );
        
        foreach( $extensions as $search )
        {
            preg_match_all( sprintf( '/^.%s[^\n\r]+/mi', $search ), $mimes, $matches );
            $mime_types = array_merge( $mime_types, preg_replace( '/^[\S]+[[:space:]]+/', null, $matches[ 0 ] ) );
        }
        
        return $mime_types;
    }
    
    $finfo = new finfo( FILEINFO_MIME_TYPE );
    $mime_type_arquivo = $finfo->file( $_FILES[ 'userfile' ] [ 'tmp_name' ] );
    
    // extensões permitidas
    $mime_types_permitidos = getMimeTypes( array( 'jpg', 'gif', 'png' ) );

    if( in_array( $mime_type_arquivo, $mime_types_permitidos ) )
    {
        // Salva os arquivos no servidor e redireciona
        die( '<h1>Arquivo válido!</h1>' );
    }
    else
    {
        // Emite mensagem e redireciona.
        die( '<h1>Arquivo negado!</h1>' );
    }
}

?>

<form action="./" method="post" id="form" enctype="multipart/form-data">
    <div class="box">
        <h1>Envio de Imagens</h1>
        <label>
            <span>Anexo *</span>
            <input type="file" class="input_file" name="userfile" id="pictures">
        </label>
        <label>
            <input type="submit" class="button" value="Enviar">              
        </label>
    </div>
</form>

Agora cabe a vc decidir o que fazer após a validação.

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.