Aviso de tradução por IA

Esta documentação foi traduzida automaticamente por IA.

Pré-visualização de arquivos

File managerCommunity Edition+

Em interfaces que contêm campos de arquivo, incluindo campos de anexo, você pode pré-visualizar arquivos clicando na miniatura ou no ícone do arquivo. A função de pré-visualização integrada oferece suporte a vários tipos de arquivo, incluindo imagens, PDFs e a maioria dos tipos de arquivo suportados nativamente pelos navegadores.

20251129232307

Para tipos de arquivo que não têm pré-visualização nativa, você pode habilitar a funcionalidade instalando ou estendendo os plugins de pré-visualização de arquivos correspondentes. Por exemplo, após instalar o plugin de pré-visualização de arquivos do Office, você poderá pré-visualizar arquivos do Word, Excel e PowerPoint.

Atualmente, o NocoBase fornece os seguintes plugins de pré-visualização de arquivos:

Mecanismo de pré-visualização de PDF

O NocoBase escolhe o método de pré-visualização de acordo com a origem da URL do arquivo PDF:

URL do arquivoArmazenamento comumMétodo de pré-visualizaçãoRequisito de CORS
Mesma origem do NocoBaseArmazenamento localO NocoBase lê o arquivo e o renderiza com o PDF.js integradoNão há CORS entre origens
Origem diferenteArmazenamento externo como OSS, S3, COS ou CDNO navegador abre a URL em um iframeA pré-visualização no iframe não exige CORS
Critério de seleção

O método depende da origem da URL, não diretamente do nome do mecanismo de armazenamento. O armazenamento local servido por um domínio de arquivos separado é tratado como origem diferente. O armazenamento externo acessado por um proxy do NocoBase com a mesma origem é tratado como mesma origem.

Armazenamento local ou URL da mesma origem

As URLs do armazenamento local normalmente começam com /storage/uploads/ e têm a mesma origem da página do NocoBase. Durante a pré-visualização, o NocoBase lê os dados do PDF e usa o PDF.js integrado para renderizar as páginas e o texto.

Esse método não depende do leitor de PDF integrado ao navegador. Mesmo que a resposta use Content-Disposition: attachment por segurança, o NocoBase pode ler e renderizar o arquivo no componente de pré-visualização. A URL precisa estar acessível com a sessão atual.

Armazenamento externo ou URL de outra origem

Serviços OSS, S3, COS e CDN normalmente usam um domínio separado. O NocoBase coloca a URL do PDF em um iframe, portanto o resultado depende do navegador e dos cabeçalhos de resposta do serviço de armazenamento.

Para abrir o PDF no iframe, o serviço normalmente deve retornar Content-Type: application/pdf e não deve forçar o download com Content-Disposition: attachment. Se a resposta exigir o download, o navegador baixa o arquivo diretamente e o NocoBase não pode substituir esse comportamento no frontend.

Carregar um PDF de outra origem em um iframe não exige CORS. No entanto, o botão de download lê o arquivo com fetch e cria um Blob. Por isso, downloads entre origens exigem que o serviço permita solicitações CORS do site NocoBase.

Observações sobre o Aliyun OSS

Em alguns casos, o domínio padrão do Aliyun OSS força o download ao retornar Content-Disposition: attachment e x-oss-force-download: true. As imagens podem continuar sendo pré-visualizadas, enquanto um PDF aberto no iframe é baixado.

Normalmente, isso pode ser resolvido vinculando um domínio personalizado ao bucket e configurando o NocoBase para acessar os arquivos por esse domínio. Consulte Problemas comuns do Aliyun OSS para ver as etapas de configuração e diagnóstico.

Limite de segurança da pré-visualização entre origens

Alguns navegadores ou leitores de PDF podem oferecer suporte a scripts, formulários ou outros conteúdos interativos dentro de arquivos PDF. Se o arquivo pré-visualizado vier de uma origem não confiável, preste atenção ao limite de segurança da execução de scripts.

Recomendamos isolar o domínio de acesso aos arquivos dos domínios do site NocoBase e da API. Por exemplo, sirva arquivos de OSS, S3, COS ou CDN por um domínio dedicado, em vez de compartilhar a mesma origem com o frontend ou a API da NocoBase.

Se o domínio dos arquivos for diferente do domínio da API, e a API não habilitar CORS para o domínio dos arquivos, os scripts executados no ambiente de pré-visualização de PDF normalmente ficam restritos pela política de mesma origem do navegador. Eles não conseguem ler diretamente a página da NocoBase, o armazenamento do navegador ou as respostas da API.