为了账号安全,请及时绑定邮箱和手机立即绑定

可以使用yii2-webuploader扩展组件,图片上传so easy

扩展包:

"bailangzhan/yii2-webuploader": "dev-master"


后端图片文件处理代码:

UploadForm.php 用于验证上传的文件

use yii\base\Model;
use yii\helpers\FileHelper;
use yii\web\UploadedFile;

/**
 * Class UploadForm
 * @package frontend\models
 * @property UploadedFile $imageFile 图片文件
 */
class UploadForm extends Model
{
    /**
     * @var UploadedFile
     */
    public $imageFile;
    public $savePath;

    public function rules()
    {
        return [
            [['imageFile'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png,jpg,jpeg']
        ];
    }

    public function upload()
    {
        if ($this->validate()) {
            $relativePath = 'statics/upload/';
            $fileMd5 = md5_file($this->imageFile->tempName);
            !is_dir($relativePath) && FileHelper::createDirectory($relativePath);
            $this->savePath = $relativePath . $fileMd5 . '.' . $this->imageFile->extension;
            return $this->imageFile->saveAs($this->savePath);
        } else {
            return false;
        }
    }
}

控制器代码:

public function actionUpload()
{
    $model = new UploadForm();
    if (Yii::$app->request->isPost) {
        $model->imageFile = UploadedFile::getInstanceByName('file');
        if ($model->upload()) {
             return Json::htmlEncode([
                'code' => 0,
                'url'  => Yii::$app->params['domain'] . $model->savePath,
                'attachment' => $model->savePath,
            ]);
        }
        return Json::htmlEncode([
            'code' => 1,
            'msg' => '上传失败:' . $model->getErrors()['file'][0]
        ]);
    }
}


正在回答

举报

0/150
提交
取消
PHP之Yii2框架搭建完整博客系统
  • 参与学习       22578    人
  • 解答问题       291    个

Yii是PHP快速开发的最佳实践之一,一起领略yii2快速开发的风采

进入课程

可以使用yii2-webuploader扩展组件,图片上传so easy

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号