Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

117
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda