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

116
Views
Laravel con Resumable.js no pudo cargar un archivo grande y la respuesta del servidor fue lenta

Desde el comienzo:

Estoy usando XAMPP como una pila de servidor para probar un proyecto que es algo así como Google Drive. Lo que quería lograr es que el usuario pueda cargar archivos de cualquier tamaño y tipo. Estoy usando Resumable.js que divide el archivo en fragmentos (1024 KB) y lo envía al servidor (Apache). Supongo que esto excluirá los cambios en el archivo php.ini ( upload_max_filesize , post_max_size )?

Para las pruebas, he usado una imagen de Linux de 9,6 GB. Había dos problemas:

  1. El archivo estuvo cargando 4,5 horas (TTFB aumenta cada minuto de 300ms a 10s cerca del final de la carga). ¿Qué solución es posible?
  2. Mientras la carga "termina", envía el Error 500 y no fusiona los archivos. ¿Es posible cambiar algo en la configuración de Apache? ¿Probablemente error de respuesta?

Cuando probé cuáles son menos de ~ 1 GB, funciona. Esa fue la prueba de estrés. XAMPP es la instalación en blanco, nada cambió en ningún archivo de configuración.

Carga de manejo de función JS:

 let resumable = new Resumable({ target: '{{ route('upload.large') }}', query:{_token:'{{ csrf_token() }}'} ,// CSRF token fileType: [], headers: { 'Accept' : 'application/json' }, testChunks: false, throttleProgressCallbacks: 1, });

Función de carga en el controlador:

 public function upload(Request $request) { $receiver = new FileReceiver('file', $request, HandlerFactory::classFromRequest($request)); if (!$receiver->isUploaded()) { // file not uploaded } $fileReceived = $receiver->receive(); // receive file if ($fileReceived->isFinished()) { // file uploading is complete / all chunks are uploaded $file = $fileReceived->getFile(); // get file $extension = $file->getClientOriginalExtension(); $fileName = $file->getClientOriginalName(); //file name without extenstion $disk = Storage::disk(config('filesystems.default')); $path = $disk->putFileAs('videos', $file, $fileName); // delete chunked file unlink($file->getPathname()); return [ 'path' => asset('storage/' . $path), 'filename' => $fileName ]; } // otherwise return percentage informatoin $handler = $fileReceived->handler(); return [ 'done' => $handler->getPercentageDone(), 'status' => true ]; }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Me estoy acercando a resolver este problema (que tengo yo mismo). Parece que la falla ocurre cuando los fragmentos se fusionan para recrear el archivo original. Recibo el mensaje "Error al abrir el flujo de entrada" una vez que el tamaño del archivo alcanza los 4,4 GB. Sospecho que la adición de archivos es limitada o que la memoria no se libera. Esperemos que esto ayude a reducirlo.

about 4 years ago · Juan Pablo Isaza 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!