UploadImg.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace app\models;
  3. use Yii;
  4. use yii\base\Model;
  5. use yii\web\UploadedFile;
  6. use yii\helpers\FileHelper;
  7. class UploadImg extends Model
  8. {
  9. public $file;
  10. private $_appendRules;
  11. public function init ()
  12. {
  13. parent::init();
  14. $extensions = Yii::$app->params['webuploader']['baseConfig']['accept']['extensions'];
  15. $this->_appendRules = [
  16. [['file'], 'file', 'extensions' => $extensions],
  17. ];
  18. }
  19. public function rules()
  20. {
  21. $baseRules = [];
  22. return array_merge($baseRules, $this->_appendRules);
  23. }
  24. public function upload()
  25. {
  26. // $relativePath = $successPath = '';
  27. if ($this->validate()) {
  28. $relativePath = './uploads/images/';
  29. $successPath = '/uploads/images/';
  30. $fileName = time().rand(1,100) . '.' . $this->file->extension;
  31. if (!is_dir($relativePath)) {
  32. FileHelper::createDirectory($relativePath);
  33. }
  34. $this->file->saveAs($relativePath . $fileName);
  35. return [
  36. 'code' => 0,
  37. 'url' => Yii::$app->params['domain'] . $successPath . $fileName,
  38. 'attachment' => $successPath . $fileName
  39. ];
  40. } else {
  41. $errors = $this->errors;
  42. return [
  43. 'code' => 1,
  44. 'msg' => current($errors)[0]
  45. ];
  46. }
  47. }
  48. }