UploadTool.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace Tool\MayouTool;
  3. use Qiniu\Auth;
  4. use Qiniu\Config;
  5. use Qiniu\Storage\UploadManager;
  6. use Qiniu\Zone;
  7. use SplFileInfo;
  8. use Tool\MayouTool\Exception\FileException;
  9. /**
  10. * 上传工具类
  11. * Class UploadTool
  12. * @package Tool\MayouTool
  13. */
  14. class UploadTool
  15. {
  16. /**
  17. * 文件上传接口
  18. * @param SplFileInfo $file
  19. * @param string $filename
  20. * @return string
  21. * @throws FileException
  22. */
  23. public static function uploadFile(SplFileInfo $file,$filename="")
  24. {
  25. if (!$filename) {
  26. $filename = date('Y/m/d/h/m/s/') . rand(0, 99999);
  27. }
  28. $auth = new Auth(env("QINIU_ACCESS_KEY"), env("QINIU_SECRET_KEY"));
  29. $token = $auth->uploadToken(env("QINIU_BUCKET"));
  30. $zone = Zone::zonez0();//设置华东区
  31. $config = new Config($zone);
  32. $upload_manager = new UploadManager($config);
  33. list($ret, $err) = $upload_manager->putFile($token, $filename, $file->getRealPath());
  34. if ($err !== null) {
  35. throw new FileException("上传失败");
  36. }
  37. return env("QINIU_DOMAIN") . $filename;
  38. }
  39. }