generated from liutk/owl-admin-base
文件上传
parent
86648e67fc
commit
9b4e798fee
|
|
@ -0,0 +1,57 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Api;
|
||||||
|
|
||||||
|
use App\Exceptions\RuntimeException;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Http\UploadedFile;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
use Illuminate\Validation\Rules\File;
|
||||||
|
|
||||||
|
class FileUploadController extends Controller
|
||||||
|
{
|
||||||
|
public function __invoke(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate(
|
||||||
|
rules: [
|
||||||
|
'file' => [
|
||||||
|
'bail',
|
||||||
|
'required',
|
||||||
|
File::types(['image/jpeg', 'image/png'])
|
||||||
|
->extensions(['jpg', 'jpeg', 'png'])
|
||||||
|
->max(20 * 1024),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
attributes: [
|
||||||
|
'file' => '文件',
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/** @var \Illuminate\Http\UploadedFile */
|
||||||
|
$file = $request->file('file');
|
||||||
|
|
||||||
|
if ($path = $file->storeAs(date('Ymd'), $this->filename($file))) {
|
||||||
|
return [
|
||||||
|
'url' => Storage::url($path),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new RuntimeException('上传失败,请重试');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function filename(UploadedFile $file): string
|
||||||
|
{
|
||||||
|
$hash = Str::random(40);
|
||||||
|
|
||||||
|
$extension = '';
|
||||||
|
|
||||||
|
if ($originalExtension = $file->getClientOriginalExtension()) {
|
||||||
|
$extension = '.'.$originalExtension;
|
||||||
|
} elseif ($guessExtension = $this->guessExtension()) {
|
||||||
|
$extension = '.'.$guessExtension;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $hash.$extension;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -4,6 +4,7 @@ use App\Http\Controllers\Api\Account\StoreMasterCommissionController;
|
||||||
use App\Http\Controllers\Api\Auth\AccessTokenController;
|
use App\Http\Controllers\Api\Auth\AccessTokenController;
|
||||||
use App\Http\Controllers\Api\ComplaintController;
|
use App\Http\Controllers\Api\ComplaintController;
|
||||||
use App\Http\Controllers\Api\FeedbackController;
|
use App\Http\Controllers\Api\FeedbackController;
|
||||||
|
use App\Http\Controllers\Api\FileUploadController;
|
||||||
use App\Http\Controllers\Api\KeywordController;
|
use App\Http\Controllers\Api\KeywordController;
|
||||||
use App\Http\Controllers\Api\Ledger\LedgerController;
|
use App\Http\Controllers\Api\Ledger\LedgerController;
|
||||||
use App\Http\Controllers\Api\Ledger\LotteryTypeController;
|
use App\Http\Controllers\Api\Ledger\LotteryTypeController;
|
||||||
|
|
@ -19,6 +20,8 @@ Route::group([
|
||||||
], function () {
|
], function () {
|
||||||
// 字典表
|
// 字典表
|
||||||
Route::get('keywords', [KeywordController::class, 'index']);
|
Route::get('keywords', [KeywordController::class, 'index']);
|
||||||
|
// 文件上传
|
||||||
|
Route::post('fileupload', FileUploadController::class);
|
||||||
|
|
||||||
// 当前账户信息
|
// 当前账户信息
|
||||||
Route::get('auth/profile', [\App\Http\Controllers\Api\Auth\UserController::class, 'profile']);
|
Route::get('auth/profile', [\App\Http\Controllers\Api\Auth\UserController::class, 'profile']);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue