Tengo una aplicación que carga un archivo csv en una carpeta en particular, por ejemplo, "cargas". Ahora quiero obtener la ruta completa de ese archivo csv, por ejemplo, D:\MyNodeApp\uploads\Test.csv .
¿Cómo obtengo la ubicación del archivo en Node.js? Usé multer para cargar el archivo.
var path = require("path"); var absolutePath = path.resolve("Relative file path");Su estructura de directorios, por ejemplo:
C:->WebServer->Público->Cargas->MiArchivo.csv
y su directorio de trabajo sería Public, por ejemplo, path.resolve sería así.
path.resolve("./Uploads/MyFile.csv"); POSIX home/WebServer/Public/Uploads/MyFile.csv
WINDOWS C:\WebServer\Public\Uploads\MyFile.csv
esta solución es multiplataforma y permite que su aplicación funcione tanto en máquinas windows como posix.
const path = require( "path" ); const fs = require( 'fs' ); const log = console.log; const folder = './'; fs.readdirSync( folder ).forEach( file => { const extname = path.extname( file ); const filename = path.basename( file, extname ); const absolutePath = path.resolve( folder, file ); log( "File : ", file ); log( "filename : ", filename ); log( "extname : ", extname ); log( "absolutePath : ", absolutePath); });Suponiendo que está utilizando multer con express, intente esto en su método de controlador:
var path = require('path'); //gets your app's root path var root = path.dirname(require.main.filename) // joins uploaded file path with root. replace filename with your input field name var absolutePath = path.join(root,req.files['filename'].path)