Conn2Flow
Docs navigation

Reference / Libraries

arquivo.php library

Pure functions for uploads and files: sanitizing names, blocking executable extensions, resolving paths without path traversal and deducing type and MIME.

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) is true for .htaccess, .htpasswd, .user.ini and 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 catches photo.php.jpg.

  • arquivo_caminho_relativo_seguro($rel) returns the clean relative path, or false for 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 with realpath() that it stays inside the base (blocking symbolic links pointing outside). It returns the path with the system separator, or false.

Type and MIME

  • arquivo_tipo_por_extensao($name): image, video, audio or file.

  • arquivo_mime_por_extensao($name): the MIME type from a fixed table, or application/octet-stream. It does not read the file contents: a .png that is actually something else gets image/png.

  • arquivo_mini_caminho_relativo($rel): where the thumbnail lives, <folder>/mini/<file>.

Functions

Generated from gestor/bibliotecas/arquivo.php · 12 functions

12 of 12

arquivo_nome_sanitizar

view source · line 39 ↗
arquivo_nome_sanitizar(string $nome): string

Higieniza 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

string
Nome higienizado; string vazia quando nada sobra de válido.

arquivo_nome_colisao

view source · line 88 ↗
arquivo_nome_colisao(string $nomeBase, string $ext, int $indice): string

Nome 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

string
Nome final higienizado.

arquivo_extensao_perigosa

view source · line 106 ↗
arquivo_extensao_perigosa(string $nome): bool

Verifica 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

bool
true quando a extensão é perigosa.

arquivo_caminho_relativo_seguro

view source · line 147 ↗
arquivo_caminho_relativo_seguro(string $rel): string|false

Normaliza 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

string|false
Caminho relativo canônico com / (sem barra inicial/final),

arquivo_caminho_resolver

view source · line 191 ↗
arquivo_caminho_resolver(string $base, string $rel): string|false

Resolve 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

string|false
Caminho absoluto (com separador nativo) ou false se inseguro.

arquivo_mini_caminho_relativo

view source · line 225 ↗
arquivo_mini_caminho_relativo(string $rel): string

Dado 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

string
Caminho relativo da miniatura (com /).

arquivo_tipo_por_extensao

view source · line 244 ↗
arquivo_tipo_por_extensao(string $nome): string

Classifica 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

string
Um de: image, video, audio, file.

arquivo_mime_por_extensao

view source · line 275 ↗
arquivo_mime_por_extensao(string $nome): string

Resolve 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

string
MIME type; application/octet-stream para extensão desconhecida.

arquivo_assinatura_confere

view source · line 334 ↗
arquivo_assinatura_confere(string $caminho, string $nome): bool

Confere 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

bool
False quando o conteúdo contradiz a extensão.

arquivo_svg_sanitizar

view source · line 394 ↗
arquivo_svg_sanitizar(string $conteudo): string

Remove de um SVG o que executa código quando o arquivo é aberto no navegador.

Parameters

$conteudostring
Conteúdo do SVG.

Returns

string
Conteúdo sem os vetores conhecidos.

arquivo_caminho_confinar

view source · line 427 ↗
arquivo_caminho_confinar(string $rel, string $escopo): string

Manté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

string
Caminho relativo seguro, dentro do escopo.

arquivo_dir_tamanho

view source · line 446 ↗
arquivo_dir_tamanho(string $abs): int

Soma o tamanho dos arquivos de uma pasta, recursivamente, sem as miniaturas (mini/).

Parameters

$absstring
Caminho absoluto da pasta.

Returns

int
Total em bytes (0 se a pasta não existe).

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.

The Future is Hybrid: Human + AI.

Conn2Flow is the tool. If you need the Architect to design your company's strategy using this technology...

Hire Specialized Consulting