要金辉1993 / upload
支持Ajax上传大文件,jQuery-File-Upload,FileApi,Plupload,支持Laravel 5框架,从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-09-29 05:41:51 UTC
README
纯Ajax上传,支持Laravel 5(支持jQuery-File-Upload,FileApi,Plupload)
特性
- 支持分块上传 jQuery-File-Upload $driver = 'fileapi';
- 支持分块上传 Dropzone $driver = 'dropzone';
- 支持分块上传 FileApi $driver = 'fileapi';
- 支持分块上传 Fine Uploader $driver = 'fine-uploader';
- 支持分块上传 Plupload $driver = 'plupload';
安装
要获取Laravel异常的最新版本,只需使用Composer引入项目
composer require recca0120/upload
当然,您也可以手动更新require块并运行composer update
,如果您选择这样做
{ "require": { "recca0120/upload": "^1.7" } }
Laravel 5
在config/app.php
中包含服务提供者。服务提供者对于生成Artisan命令是必需的。
'providers' => [ ... Recca0120\Upload\UploadServiceProvider::class, ... ];
发布
artisan vendor:publish --provider="Recca0120\Upload\UploadServiceProvider"
如何使用
控制器
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); }); } }
工厂
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();
独立
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();