Saltar al contenido

¿Cómo convertir la ruta del archivo local a un archivo::?/ url de forma segura en node.js?

Esta sección fue probado por nuestros expertos para que tengas la garantía de la exactitud de nuestra esta sección.

Solución:

Node.js v10.12.0 acaba de obtener dos nuevos métodos para resolver este problema:

const url = require('url');
url.fileURLToPath(url)
url.pathToFileURL(path)

Documentación

  • https://nodejs.org/api/url.html#url_url_pathtofileurl_path
  • https://nodejs.org/api/url.html#url_url_fileurltopath_url

Utilizar el file-url módulo.

npm install --save file-url

Uso:

var fileUrl = require('file-url');

fileUrl('unicorn.jpg');
//=> file:///Users/sindresorhus/dev/file-url/unicorn.jpg 

fileUrl('/Users/pony/pics/unicorn.jpg');
//=> file:///Users/pony/pics/unicorn.jpg

También funciona en Windows. Y el código es lo suficientemente simple, en caso de que solo quiera tomar un fragmento:

var path = require('path');

function fileUrl(str) 
    if (typeof str !== 'string') 
        throw new Error('Expected a string');
    

    var pathName = path.resolve(str).replace(/\/g, '/');

    // Windows drive letter must be prefixed with a slash
    if (pathName[0] !== '/') 
        pathName = '/' + pathName;
    

    return encodeURI('file://' + pathName);
;

Tuve un problema similar, pero la solución terminó siendo usar el nuevo WHATWG URL implementación:

const path = 'c:\Users\myname\test.swf';
const u = new URL(`file:///$path`).href;
// u = 'file:///c:/Users/myname/test.swf'

Sección de Reseñas y Valoraciones

Recuerda difundir esta división si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *