UploadController.php 1.0 KB

1234567891011121314151617181920212223242526
  1. <?php
  2. namespace App\Http\Controllers\agent;
  3. use App\Constants\Util;
  4. use App\Http\Controllers\AgentApiController;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Storage;
  7. /** 代理后台上传图片(充值凭证、人工提现收款码等),存储方式和返回格式同总后台 /admin/upload/uploadFile。 */
  8. class UploadController extends AgentApiController
  9. {
  10. public function image(Request $request)
  11. {
  12. return $this->execute(function () use ($request) {
  13. $request->validate(['image' => ['required', 'image', 'mimes:jpg,jpeg,png,webp', 'max:10240']]);
  14. $image = $request->file('image');
  15. // 扩展名按文件内容判断,不信任客户端文件名
  16. $name = md5_file($image->getRealPath()) . '.' . ($image->extension() ?: 'webp');
  17. $path = Storage::disk('public')->exists('images/' . $name)
  18. ? 'images/' . $name
  19. : $image->storeAs('images', $name, 'public');
  20. return ['path' => Util::ensureUrl(Storage::url($path))];
  21. });
  22. }
  23. }