UploadController.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\client\controllers\v1;
  8. use app\models\common\Upload;
  9. use app\models\Storage;
  10. use app\models\UploadConfig;
  11. use app\modules\client\controllers\BaseController;
  12. class UploadController extends BaseController
  13. {
  14. /**
  15. * 上传图片
  16. * @return \yii\web\Response
  17. */
  18. public function actionUploadImage()
  19. {
  20. $form = new Upload();
  21. $form->store_id = get_store_id();
  22. $form->upload_config = UploadConfig::getConf(get_store_id());
  23. return $this->asJson($form->uploadClientFile(Storage::TYPE_IMAGE));
  24. }
  25. /**
  26. * 上传视频
  27. * @return \yii\web\Response
  28. */
  29. public function actionUploadVideo()
  30. {
  31. $form = new Upload();
  32. $form->store_id = get_store_id();
  33. $form->upload_config = UploadConfig::getConf(get_store_id());
  34. return $this->asJson($form->uploadClientFile(Storage::TYPE_VIDEO));
  35. }
  36. /**
  37. * 上传图片
  38. * @return \yii\web\Response
  39. */
  40. public function actionUploadBase64()
  41. {
  42. $form = new Upload();
  43. $base64img = post_params('base64img');
  44. $info = explode(',',$base64img);
  45. if($info[0] == 'data:image/jpeg;base64'){
  46. $pic = base64_decode($info[1]);
  47. if ($pic === false) {
  48. return $this->asJson([
  49. 'code' => 1,
  50. 'msg' => '文件上传失败'
  51. ]);
  52. }
  53. // 如果解码成功,则将解码的代码写入文件即可,下面只做个示范。
  54. $filename = md5(date('ymdHis') . 'base64');
  55. $path = \Yii::$app->runtimePath . '/image/' . $filename . '.jpg';
  56. $pic_url = str_replace('http://', 'https://', \Yii::$app->request->hostInfo . '/runtime/image/' . $filename . '.jpg');
  57. if (file_put_contents($path, $pic)){
  58. $_FILES['image'] = [
  59. 'name' => $filename . '.jpg',
  60. 'type' => 'image/jpeg',
  61. 'tmp_name' => $path,
  62. 'error' => UPLOAD_ERR_OK,
  63. 'size' => 50,
  64. ];
  65. debug_log($_FILES, 'image.log');
  66. return $this->actionUploadImage();
  67. }
  68. }
  69. return $this->asJson([
  70. 'code' => 1,
  71. 'msg' => '文件上传失败'
  72. ]);
  73. }
  74. }