|
|
|
|
@ -3,17 +3,18 @@
|
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
|
|
|
|
|
|
use App\Http\Controllers\Concerns\EnsuresPublicDiskWritable;
|
|
|
|
|
use App\Http\Controllers\Concerns\StoresPublicUploadWithoutFileinfo;
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
|
|
use App\Models\WechatUser;
|
|
|
|
|
use Illuminate\Http\JsonResponse;
|
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
|
use Illuminate\Support\Facades\Storage;
|
|
|
|
|
use Throwable;
|
|
|
|
|
|
|
|
|
|
class H5UploadController extends Controller
|
|
|
|
|
{
|
|
|
|
|
use EnsuresPublicDiskWritable;
|
|
|
|
|
use StoresPublicUploadWithoutFileinfo;
|
|
|
|
|
|
|
|
|
|
public function store(Request $request): JsonResponse
|
|
|
|
|
{
|
|
|
|
|
@ -36,12 +37,12 @@ class H5UploadController extends Controller
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$data = $request->validate([
|
|
|
|
|
'file' => ['required', 'file', 'max:5120', 'mimes:jpg,jpeg,png,gif,webp'],
|
|
|
|
|
// mimes 内部用 guessExtension(),依赖 fileinfo;extensions 仅看客户端扩展名
|
|
|
|
|
'file' => ['required', 'file', 'max:5120', 'extensions:jpg,jpeg,png,gif,webp'],
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
Storage::disk('public')->makeDirectory('uploads/h5');
|
|
|
|
|
$path = Storage::disk('public')->putFile('uploads/h5', $data['file']);
|
|
|
|
|
$path = $this->storeUploadedFileAsUniqueName($data['file'], 'uploads/h5');
|
|
|
|
|
} catch (Throwable $e) {
|
|
|
|
|
report($e);
|
|
|
|
|
Log::error('h5_upload_putfile_failed', [
|
|
|
|
|
@ -62,7 +63,7 @@ class H5UploadController extends Controller
|
|
|
|
|
|
|
|
|
|
return response()->json([
|
|
|
|
|
'message' => '文件保存失败(写入返回失败)',
|
|
|
|
|
'detail' => config('app.debug') ? 'Storage::putFile 返回 false' : null,
|
|
|
|
|
'detail' => config('app.debug') ? 'Storage::putFileAs 返回 false' : null,
|
|
|
|
|
], 500);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|