ImageUploadController.php 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace Modules\Common\Http\Controllers\Qiniu;
  3. use Catch\Base\CatchController;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Str;
  6. use Modules\Common\Errors\Errors;
  7. use Modules\Common\Exceptions\CommonBusinessException;
  8. use Qiniu\Auth;
  9. use Qiniu\Storage\UploadManager;
  10. class ImageUploadController extends CatchController
  11. {
  12. public function uploadImage(Request $request) {
  13. $file = $request->photo;
  14. $qiniuConfig = config('common.qiniu');
  15. $auth = new Auth($qiniuConfig['accessKey'], $qiniuConfig['secretKey']);
  16. $token = $auth->uploadToken(config('common.qiniu.publicBucket'));
  17. $filePath = $file->path();
  18. $key = 'uploads'.DIRECTORY_SEPARATOR.'images'. DIRECTORY_SEPARATOR . date('Ymd') .
  19. DIRECTORY_SEPARATOR. Str::random(10) . time() . '.'. $file->extension();
  20. $uploadMgr = new UploadManager();
  21. list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath, null, 'application/octet-stream',
  22. true, null, 'v2');
  23. if($err !== null) {
  24. CommonBusinessException::throwError(Errors::UPLOAD_IMAGE_ERROR);
  25. } else {
  26. return $qiniuConfig['publicLinkDomain']. DIRECTORY_SEPARATOR . $key;
  27. }
  28. }
  29. }