Path in the Gestor bibliotecas/arquivo.php
Pure functions (no database, no $_GESTOR) for code that receives or serves files. The admin-arquivos file manager and the arquivo-estatico controller use them. Each function is only declared if it does not exist yet.
Names
| Function | |
|---|---|
arquivo_nome_sanitizar($name) |
Keeps only the name (drops folders), replaces : * ? " < > \| with -, removes control characters and null bytes, replaces spaces with -, collapses repeated hyphens and trims . and - from the ends. Accents are kept. It may return '' |
arquivo_nome_colisao($base, $ext, $n) |
photo-(2).jpg, already sanitized |
Security
-
arquivo_extensao_perigosa($name)istruefor.htaccess,.htpasswd,.user.iniand for any executable or configuration extension segment (php,phtml,phar,cgi,py,sh,exe,jsp,asp,shtml,ini,conf…). Because it checks every segment, it catchesphoto.php.jpg. -
arquivo_caminho_relativo_seguro($rel)returns the clean relative path, orfalsefor a null byte, an absolute path (/…,C:), any..or a segment that ends up empty. -
arquivo_caminho_resolver($base, $rel)joins both and, if the target already exists, checks withrealpath()that it stays inside the base (blocking symbolic links pointing outside). It returns the path with the system separator, orfalse.
Type and MIME
-
arquivo_tipo_por_extensao($name):image,video,audioorfile. -
arquivo_mime_por_extensao($name): the MIME type from a fixed table, orapplication/octet-stream. It does not read the file contents: a.pngthat is actually something else getsimage/png. -
arquivo_mini_caminho_relativo($rel): where the thumbnail lives,<folder>/mini/<file>.
Functions
Generated from gestor/bibliotecas/arquivo.php · 12 functions
arquivo_nome_sanitizar
view source · line 39 ↗arquivo_nome_sanitizar(string $nome): stringHigieniza um nome de arquivo ou pasta para uso seguro em sistemas de arquivos heterogêneos (Windows/Linux/rede).
Parameters
$nomestring- Nome cru informado pelo usuário ou upload.
Returns
arquivo_nome_colisao
view source · line 88 ↗arquivo_nome_colisao(string $nomeBase, string $ext, int $indice): stringNome de desempate quando o arquivo enviado colide com um já existente na pasta.
Parameters
$nomeBasestring- Nome já higienizado, sem extensão.
$extstring- Extensão sem o ponto (string vazia quando não há).
$indiceint- Contador de desempate (1, 2, 3...).
Returns
arquivo_extensao_perigosa
view source · line 106 ↗arquivo_extensao_perigosa(string $nome): boolVerifica se a extensão de um nome de arquivo é executável/perigosa e deve ser bloqueada no upload, mesmo que o usuário tente burlar a extensão.
Parameters
$nomestring- Nome do arquivo (com extensão).
Returns
arquivo_caminho_relativo_seguro
view source · line 147 ↗arquivo_caminho_relativo_seguro(string $rel): string|falseNormaliza um caminho relativo informado pelo cliente e garante que ele permanece dentro da árvore de conteúdos (previne path traversal).
Parameters
$relstring- Caminho relativo cru (pode vir vazio = raiz).
Returns
/ (sem barra inicial/final),arquivo_caminho_resolver
view source · line 191 ↗arquivo_caminho_resolver(string $base, string $rel): string|falseResolve o caminho absoluto de um relativo seguro sob uma base e confirma, via realpath quando o alvo existe, que ele não escapa da base.
Parameters
$basestring- Raiz absoluta de conteúdos (
$_GESTOR['contents-path']). $relstring- Caminho relativo (será validado por arquivo_caminho_relativo_seguro).
Returns
arquivo_mini_caminho_relativo
view source · line 225 ↗arquivo_mini_caminho_relativo(string $rel): stringDado o caminho relativo de um arquivo, retorna o caminho relativo da sua miniatura na subpasta física mini/ da mesma pasta.
Parameters
$relstring- Caminho relativo do arquivo original.
Returns
/).arquivo_tipo_por_extensao
view source · line 244 ↗arquivo_tipo_por_extensao(string $nome): stringClassifica o "tipo" de um arquivo (image/video/audio/file) a partir da extensão, sem depender de mime_content_type (que exige o arquivo em disco).
Parameters
$nomestring- Nome do arquivo.
Returns
arquivo_mime_por_extensao
view source · line 275 ↗arquivo_mime_por_extensao(string $nome): stringResolve o MIME type real de um arquivo a partir da extensão, sem depender de mime_content_type (que exige o arquivo em disco e a extensão fileinfo ativa).
Parameters
$nomestring- Nome do arquivo (com ou sem caminho).
Returns
application/octet-stream para extensão desconhecida.arquivo_assinatura_confere
view source · line 334 ↗arquivo_assinatura_confere(string $caminho, string $nome): boolConfere se o conteúdo de um arquivo bate com a extensão que ele declara (bytes mágicos).
Parameters
$caminhostring- Caminho absoluto do arquivo já gravado (ou temporário).
$nomestring- Nome do arquivo, de onde sai a extensão declarada.
Returns
arquivo_svg_sanitizar
view source · line 394 ↗arquivo_svg_sanitizar(string $conteudo): stringRemove de um SVG o que executa código quando o arquivo é aberto no navegador.
Parameters
$conteudostring- Conteúdo do SVG.
Returns
arquivo_caminho_confinar
view source · line 427 ↗arquivo_caminho_confinar(string $rel, string $escopo): stringMantém um caminho relativo dentro de uma pasta de escopo.
Parameters
$relstring- Caminho relativo pedido.
$escopostring- Pasta de escopo, relativa aos conteúdos ('' = sem restrição).
Returns
arquivo_dir_tamanho
view source · line 446 ↗arquivo_dir_tamanho(string $abs): intSoma o tamanho dos arquivos de uma pasta, recursivamente, sem as miniaturas (mini/).
Parameters
$absstring- Caminho absoluto da pasta.
Returns
Upload and file-browser scope
arquivo_assinatura_confere compares extension and file signature; SVG looks for an svg tag and glTF requires JSON with asset, so these are not full format validators. arquivo_svg_sanitizar removes scripts, foreignObject, objects/iframes, on* handlers and executable references through regular expressions; it is not an XML parser or general sanitizer. arquivo_caminho_confinar keeps relative paths within a subtree and returns its root for invalid/outside paths. arquivo_dir_tamanho recursively totals bytes, ignoring symbolic links and mini/ thumbnails.