yaojinhui1993 / upload
Ajax Upload Large File Support jQuery-File-Upload, FileApi, Plupload, Support framework Laravel 5. Fork from https://github.com/recca0120/upload
v1.7.3
2018-03-23 08:24 UTC
Requires
- php: >=5.5.9
- illuminate/filesystem: ^5.1
- illuminate/http: ^5.1
Requires (Dev)
- mikey179/vfsstream: ^1.6
- mockery/mockery: ~0.9.4|~1.0
- nesbot/carbon: ~1.20
- phpunit/phpunit: ~4.8|~5.4|~6.1|~7.0
This package is not auto-updated.
Last update: 2024-04-28 03:09:13 UTC
README
Pure Ajax Upload And for Laravel 5 (Support jQuery-File-Upload, FileApi, Plupload)
Features
- Support Chunks jQuery-File-Upload $driver = 'fileapi';
- Support Chunks Dropzone $driver = 'dropzone';
- Support Chunks FileApi $driver = 'fileapi';
- Support Chunks Fine Uploader $driver = 'fine-uploader';
- Support Chunks Plupload $driver = 'plupload';
Installing
To get the latest version of Laravel Exceptions, simply require the project using Composer:
composer require recca0120/upload
Instead, you may of course manually update your require block and run composer update
if you so choose:
{ "require": { "recca0120/upload": "^1.7" } }
Laravel 5
Include the service provider within config/app.php
. The service povider is needed for the generator artisan command.
'providers' => [ ... Recca0120\Upload\UploadServiceProvider::class, ... ];
publish
artisan vendor:publish --provider="Recca0120\Upload\UploadServiceProvider"
How to use
Controller
use Illuminate\Http\JsonResponse; use Yaojinhui1993\Upload\UploadManager; use Symfony\Component\HttpFoundation\File\UploadedFile; class UploadController extends Controller { public function upload(UploadManager $manager) { $driver = 'plupload'; // or 'fileapi' $inputName = 'file'; // $_FILES index; return $manager->driver($driver)->receive($inputName); // or return $manager ->driver($driver) ->receive($inputName, function (UploadedFile $uploadedFile, $path, $domain, $api) { $clientOriginalName = $uploadedFile->getClientOriginalName(); $clientOriginalExtension = strtolower($uploadedFile->getClientOriginalExtension()); $basename = pathinfo($uploadedFile->getBasename(), PATHINFO_FILENAME); $filename = md5($basename).'.'.$clientOriginalExtension; $mimeType = $uploadedFile->getMimeType(); $size = $uploadedFile->getSize(); $uploadedFile->move($path, $filename); $response = [ 'name' => pathinfo($clientOriginalName, PATHINFO_FILENAME).'.'.$clientOriginalExtension, 'tmp_name' => $path.$filename, 'type' => $mimeType, 'size' => $size, 'url' => $domain.$path.$filename, ]; return new JsonResponse($response); }); } }
Factory
use Yaojinhui1993\Upload\Receiver; use Illuminate\Http\JsonResponse; require __DIR__.'/vendor/autoload.php'; $config = [ 'chunks' => 'path_to_chunks', 'storage' => 'path_to_storage', 'domain' => 'http://app.dev/', 'path' => 'web_path' ]; $inputName = 'file'; $storagePath = 'relative path'; $api = 'fileapi'; // or plupload Receiver::factory($config, $api)->receive($inputName)->send();
Standalone
use Yaojinhui1993\Upload\Receiver; use Yaojinhui1993\Upload\FileAPI; use Yaojinhui1993\Upload\Plupload; use Illuminate\Http\JsonResponse; require __DIR__.'/vendor/autoload.php'; $config = [ 'chunks' => 'path_to_chunks', 'storage' => 'path_to_storage', 'domain' => 'http://app.dev/', 'path' => 'web_path' ]; $inputName = 'file'; $storagePath = 'relative path'; // if use Plupload, new Recca0120\Upload\Plupload $receiver = new Receiver(new FileAPI($config)); // save to $config['base_path'].'/'.$storagePath; $receiver->receive($inputName)->send();