pion/laravel-chunk-upload Laravel not working with large files

Viewed 467

I am using resumable.js and Laravel Chunk for uploading large files. It works for small files but didn't work for > 500mb. Chunk is part the file but it didn't re-compile the file to a given directory.

Namespaces

use Illuminate\Http\Request;
use Illuminate\Http\UploadedFile;
use Pion\Laravel\ChunkUpload\Exceptions\UploadMissingFileException;
use Pion\Laravel\ChunkUpload\Handler\AbstractHandler;
use Pion\Laravel\ChunkUpload\Handler\HandlerFactory;
use Pion\Laravel\ChunkUpload\Receiver\FileReceiver;
use Illuminate\Support\Facades\Storage;

Controller

$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 = str_replace('.'.$extension, '', $file->getClientOriginalName()); //file name without extenstion
        $fileName .= '_' . md5(time()) . '.' . $extension; // a unique file name

        $disk = Storage::disk('new');
        $path = $disk->putFileAs('resources/techpacks', $file, $fileName);

        // delete chunked file
        unlink($file->getPathname());
        // return [
        //     'path' => asset('storage/' . $path),
        //     'filename' => $fileName
        // ];
    }

Resumable

let browseFile = $('#browseFile');
  let resumable = new Resumable({
      target: "{{ url('admin/techpack/insert') }}",
      query:{_token:'{{ csrf_token() }}'} ,// CSRF token
      fileType: ['zip'],
      chunkSize: 10*1024*1024, // default is 1*1024*1024, this should be less than your maximum limit in php.ini
      headers: {
          'Accept' : 'application/json'
      },
      testChunks: false,
      throttleProgressCallbacks: 1,
  });

  resumable.assignBrowse(browseFile[0]);

  resumable.on('fileAdded', function (file) { // trigger when file picked
      showProgress();
      resumable.upload() // to actually start uploading.
  });

  resumable.on('fileProgress', function (file) { // trigger when file progress update
      updateProgress(Math.floor(file.progress() * 100));
  });

  resumable.on('fileSuccess', function (file, response) { // trigger when file upload complete
      // response = JSON.parse(response)
      console.log(response)
  });

  resumable.on('fileError', function (file, response) { // trigger when there is any error
      alert('file uploading error.')
  });


  let progress = $('.progress');
  function showProgress() {
      progress.find('.progress-bar').css('width', '0%');
      progress.find('.progress-bar').html('0%');
      progress.find('.progress-bar').removeClass('bg-success');
      progress.show();
  }

  function updateProgress(value) {
      progress.find('.progress-bar').css('width', `${value}%`)
      progress.find('.progress-bar').html(`${value}%`)
  }

  function hideProgress() {
      progress.hide();
  }

Chunk Folder

enter image description here

After Re-Building

enter image description here

Added to Target Folder

enter image description here

But I can't open the final file. Please guide me.

Windows Error

enter image description here

Resumable Error

enter image description here enter image description here

0 Answers
Related