refresh date: 2026-09-25 robots: noindex
Descripción
Usa la API de chrome.fileBrowserHandler para extender el explorador de archivos de ChromeOS. Por ejemplo, puedes usar esta API para permitir que los usuarios suban archivos a tu sitio web.
Permisos
fileBrowserHandlerDisponibilidad
El explorador de archivos de ChromeOS aparece cuando el usuario presiona Alt + Mayúsculas + M o conecta un dispositivo de almacenamiento externo, como una tarjeta SD, una llave USB, una unidad externa o una cámara digital. Además de mostrar los archivos en dispositivos externos, el explorador de archivos también puede mostrar los archivos que el usuario guardó anteriormente en el sistema.
Cuando el usuario selecciona uno o más archivos, el navegador de archivos agrega botones que representan los controladores válidos para esos archivos. Por ejemplo, en la siguiente captura de pantalla, si se selecciona un archivo con el sufijo ".png", se muestra el botón "Guardar en la galería" en el que el usuario puede hacer clic.

Manifiesto
Debes declarar el permiso "fileBrowserHandler" en el manifiesto de la extensión y usar el campo "file_browser_handlers" para registrar la extensión como controlador de al menos un tipo de archivo. También debes proporcionar un ícono de 16 x 16 para que se muestre en el botón. Por ejemplo:
{
"name": "My extension",
...
"file_browser_handlers": [
{
"id": "upload",
"default_title": "Save to Gallery", // What the button will display
"file_filters": [
"filesystem:*.jpg", // To match all files, use "filesystem:*.*"
"filesystem:*.jpeg",
"filesystem:*.png"
]
}
],
"permissions" : [
"fileBrowserHandler"
],
"icons": {
"16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png"
},
...
}
Implementa un controlador del navegador de archivos
Para usar esta API, debes implementar una función que controle el evento onExecute de chrome.fileBrowserHandler. Se llamará a tu función cada vez que el usuario haga clic en el botón que representa el controlador del navegador de archivos. En tu función, usa la API de File System para acceder al contenido del archivo. A continuación, se muestra un ejemplo:
chrome.fileBrowserHandler.onExecute.addListener(async (id, details) => {
if (id !== 'upload') {
return; // check if you have multiple file_browser_handlers
}
for (const entry of detail.entries) {
// the FileSystemFileEntry doesn't have a Promise API, wrap in one
const file = await new Promise((resolve, reject) => {
entry.file(resolve, reject);
});
const buffer = await file.arrayBuffer();
// do something with buffer
}
});
Tu controlador de eventos recibe dos argumentos:
- id
- Es el valor de "id" del archivo de manifiesto. Si tu extensión implementa varios controladores, puedes verificar el valor del ID para ver qué controlador se activó.
- detalles
- Objeto que describe el evento. Puedes obtener el archivo o los archivos que el usuario seleccionó en el campo
entriesde este objeto, que es un array de objetosFileSystemFileEntry.
Tipos
FileHandlerExecuteEventDetails
Es la carga útil de los detalles del evento para el evento fileBrowserHandler.onExecute.
Propiedades
-
entradas
any[]
Es un array de instancias de Entry que representan los archivos que son el destino de esta acción (seleccionados en el explorador de archivos de ChromeOS).
-
tab_id
número opcional
ID de la pestaña que generó este evento. Los IDs de las pestañas son únicos dentro de una sesión del navegador.
Eventos
onExecute
chrome.fileBrowserHandler.onExecute.addListener(
callback: function,
)
Se activa cuando se ejecuta una acción del sistema de archivos desde el navegador de archivos de ChromeOS.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(id: string, details: FileHandlerExecuteEventDetails) => void
-
id
string
-
detalles
-