Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

152
Views
Dar acceso a archivos locales al servidor web

Recién comencé a aprender JavaScript y he estado tratando de cargar un archivo en un servidor web que estoy alojando localmente. Estoy usando un archivo JS de paquete web para iniciar el servidor y el comando "npm run dev", pero creo que algo está mal configurado porque no puedo cargar archivos locales en el servidor web. Sé que Google Chrome tiene esa función de seguridad que le impide acceder a los archivos locales, pero ejecuté Chrome con los argumentos necesarios para deshabilitar esa función de seguridad, pero no funcionó, así que supongo que es mi servidor. Esto es lo que estoy tratando de hacer:

 let uploadFile = document.createElement("input"); uploadFile.type = "file" uploadFile.id = "inputFile" uploadFile.innerText = "Upload File" document.body.appendChild(uploadFile) let fake_path uploadFile.onchange = function () { fake_path = uploadFile.value alert(fake_path) const loader = new GLTFLoader(); loader.load( fake_path, function ( gltf ) { scene.add( gltf.scene ); }, undefined, function ( error ) { console.error( error ); } ); };`

Este es mi archivo común de paquete web:

 const path = require('path'); module.exports = { entry: './src/client/client.ts', module: { rules: [ { test: /\.tsx?$/, use: 'ts-loader', exclude: /node_modules/, }, { test: /\.(glb)$/i, type: 'src/client/', }, ], }, resolve: { alias: { three: path.resolve('./node_modules/three') }, extensions: ['.tsx', '.ts', '.js', '.glb'], }, output: { filename: 'bundle.js', path: path.resolve(__dirname, '../../dist/client'), } };

Y este es mi archivo Dev:

 const { merge } = require('webpack-merge') const common = require('./webpack.common.js') const path = require('path'); module.exports = merge(common, { mode: 'development', devtool: 'eval-source-map', devServer: { static: { directory: path.join(__dirname, '../../dist/client/'), }, hot: true, }, })

¿Estoy haciendo algo mal o por qué no puedo acceder a un archivo local? Este es el error que me da Chrome: Error de cromo

La ayuda sería muy apreciada.

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Parece que estás operando bajo varios malentendidos diferentes aquí. Estos son los hechos que los contradicen:

  1. El servidor de desarrollo de Webpack no admite la carga de archivos.
  2. Mientras usa una entrada de archivo para permitir que el usuario seleccione un archivo local, no está haciendo nada para intentar cargarlo en el servidor
  3. El value de una entrada de archivo solo es útil para decirle al usuario el nombre del archivo, está tratando de usarlo como una URL (que el servidor de desarrollo del paquete web no puede resolver para nada útil)

Debe pasar una URL real a loader.load . No el fake_path que obtienes del value de una entrada de archivo.

Puede usar FileReader para leer el archivo y crear una URL de esquema de data: a partir de él. Esta entrada de blog explica cómo .

 <input type="file" /> <script> // Get a reference to the file input const fileInput = document.querySelector('input'); // Listen for the change event so we can capture the file fileInput.addEventListener('change', (e) => { // Get a reference to the file const file = e.target.files[0]; // Encode the file using the FileReader API const reader = new FileReader(); reader.onloadend = () => { console.log(reader.result); // Logs data:<type>;base64,wL2dvYWwgbW9yZ... }; reader.readAsDataURL(file); }); </script>

Luego debe reemplazar console.log(reader.result); con su llamada a loader.load (reemplazando fake_path con reader.result ).

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!