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:
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 ]; }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.