black-bits / resumable.js-laravel-backend
Resumable.js 的 Laravel 兼容 PHP 包
0.2.1
2016-01-31 16:29 UTC
Requires
- php: >=5.3.0
- cakephp/filesystem: ^3.0
Requires (Dev)
- monolog/monolog: ^1.17
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-08-29 03:52:51 UTC
README
这是一个从 dilab/resumable.php 分支出的版本,对其进行了修改,使其与 Laravel 框架 兼容。
目前正在开发中,目前主要针对 Laravel 5.1 和 5.2 版本。
安装
要安装,请使用 composer
composer require black-bits/resumable.js-laravel-backend
如何使用
app/Http/routes.php
<?php
// resumable.js routes
Route::get ('resumable/upload', 'UploadController@resumableUpload');
Route::post('resumable/upload', 'UploadController@resumableUpload');
app/Http/Controllers/UploadController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\File;
use Dilab\Network\SimpleRequest;
use Dilab\Network\SimpleResponse;
use Dilab\Resumable;
class UploadController extends Controller
{
/**
* Handles resumeable uploads via resumable.js
*
* @return Response
*/
public function resumableUpload()
{
$tmpPath = storage_path().'/tmp';
$uploadPath = storage_path().'/uploads';
if(!File::exists($tmpPath)) {
File::makeDirectory($tmpPath, $mode = 0777, true, true);
}
if(!File::exists($uploadPath)) {
File::makeDirectory($uploadPath, $mode = 0777, true, true);
}
$simpleRequest = new SimpleRequest();
$simpleResponse = new SimpleResponse();
$resumable = new Resumable($simpleRequest, $simpleResponse);
$resumable->tempFolder = $tmpPath;
$resumable->uploadFolder = $uploadPath;
$result = $resumable->process();
switch($result) {
case 200:
return response([
'message' => 'OK',
], 200);
break;
case 201:
// mark uploaded file as complete etc
return response([
'message' => 'OK',
], 200);
break;
case 204:
return response([
'message' => 'Chunk not found',
], 204);
break;
default:
return response([
'message' => 'An error occurred',
], 404);
}
}
}
测试
$ ./vendor/bin/phpunit