• 技术文章 >php框架 >YII

    yii2 怎么上传图片

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-12-07 16:21:15原创756

    第一步:搭建上传类基础工作,具体请看:http://www.yiichina.com/tutorial/328

    第二步:建站一个product表,字段id,name,picurl.

    第三步:GII生成PRODUCT 模型,类,视图。

    第四步:

    main.css 放在frontend\web\css
    .onedialog{position:absolute; left: 300px; top: 500px; z-index: 10; width: 700px; height: 400px;border
    -radius:5px;
    box-shadow:5px 2px 6px #000; border: 2px solid #666}
    .oneiframe{ width: 100%; height: 100% }

    main.js 放在 frontend\web\assets

    $(function(){
    $('#product-picurl').click(function(){
    $('#oneupload').remove();
    $('<div>').appendTo($('body')).attr({"class":"onedialog",'id':"oneupload"});
    $('<iframe>').appendTo($('#oneupload')).attr({"src":"?r=upload","class":"oneiframe"})
    });
        var v=$('#product-picurl').val();
    if(v){
    $('<img>').attr({"src":v,"style":"height:50px"}).insertAfter($('#product-picurl'));
    }
    });

    然后在frontend\assets\AppAsset.php中注册这两个文件

    class AppAsset extends AssetBundle
    {
        public $basePath = '@webroot';
        public $baseUrl = '@web';
        public $css = [
            'css/site.css',
            'css/main.css',
        ];
        public $js = [
            'assets/main.js'
        ];
        public $depends = [
            'yii\web\YiiAsset',
            'yii\bootstrap\BootstrapAsset',
        ];
    }

    UploadController.php

    <?PHP
    namespace frontend\controllers;
    use Yii;
    use yii\web\Controller;
    use app\models\UploadForm;
    use yii\web\UploadedFile;
    class UploadController extends Controller
    {
        public function actionIndex()
        {
            $model = new UploadForm();
            if (Yii::$app->request->isPost) {
                $model->file = UploadedFile::getInstance($model, 'file');
                if ($model->file && $model->validate()) {
                    //$model->file->saveAs('uploads/' . $model->file->baseName . '.' .$model->
                    file->extension); 
                    $fileName='uploads/' . date("YmdHis") . '.' . $model->file->extension;
                    $model->file->saveAs($fileName);
                }
                echo "<script src='assets/upload.js'></script>;";
                echo "<script>";
                echo "var oneinput=parent.document.getElementById('product-picurl');";
                echo "parent.document.getElementById('product-picurl').value='".$fileName."';";
                echo "var oneupload = parent.document.getElementById('oneupload');";
                echo "var img = document.createElement('img');";
                echo "img.setAttribute('style', 'height:50px');";
                echo "img.src ='".$fileName."';";
                echo "insertAfter(img,oneinput);";
                echo "oneupload.parentNode.removeChild(oneupload)";
                echo "</script>";
            }
            return $this->render('upload', ['model' => $model]);
        }
    }
    ?>

    UploadForm.php

    <?PHP
    namespace app\models;
    use yii\base\Model;
    use yii\web\UploadedFile;
    /**
     * UploadForm is the model behind the upload form.
     */
    class UploadForm extends Model
    {
        /**
         * @var UploadedFile file attribute
         */
        public $file;
        /**
         * @return array the validation rules.
         */
        public function rules()
        {
            return [
                [['file'], 'file'],
            ];
        }
    }
    ?>

    upload.php

    <?php
    use yii\widgets\ActiveForm;
    ?>
    <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
    <?= $form->field($model, 'file')->fileInput() ?>
    <button>Submit</button>
    <?php ActiveForm::end() ?>

    PHP中文网,有大量免费的Yii入门教程,欢迎大家学习!

    以上就是yii2 怎么上传图片的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:yii2 上传图片
    上一篇:yii框架如何获取当前url 下一篇:yii1和yii2的区别是什么
    大前端线上培训班

    相关文章推荐

    • yii2写api接口步骤• yii2 hasone怎么用• yii2 网站出现403错误怎么办• yii2 入口文件找不到怎么办

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网