2016-04-27 17:24:08 9659次浏览 13条回答 0 悬赏 10 金钱
public function actionCreate()
{
    //实例化模型
    $model = new Arti();
    //定义文件上传根目录
    $rootPath = "uploads/";
    //判断是否有POST数据 
    if( $model->load( Yii::$app->request->post() ) )
    {
             //调用uploadedfile模型中的getInstance方法  返回一个实例
             $file = UploadedFile::getInstance($model,'logo');
             //调用模型中的属性  返回上传文件的名称
             $name = $file->name;
             //定义上传文件的二级目录
             $path = date('Y-m-d',time());
             //拼装上传文件的路径
             $rootPath = $rootPath . $path . "/";
             if (!file_exists($rootPath)) {
                mkdir($rootPath,true);
            }
             //调用模型类中的方法 保存图片到该路径
             $file->saveAs($rootPath . $name);
             //为模型中的logo属性赋值
             $model->logo = $rootPath . $name;
             // echo "<pre>";
             // var_dump($_POST);
             // die;
            if($model->save()){

                return $this->redirect(['index']);
            }
    }
    return $this->render('create', ['model' => $model]);
}

像这样 调用save之后通不过 数据插入不到数据库 为什么。。。 还有 这段代码 我不处理图片就可以插入数据 为何 加入了处理图片代码 就不行了呢?

  • 回答于 2016-04-27 17:25 举报

    没获取到key值

    1 条回复
    回复于 2016-04-27 17:30 回复

    如何获取呢。?插入不需要key值 不是修改。。。还有 这段代码 我不处理图片就可以插入数据 为何 加入了处理图片代码 就不行了呢?

  • 回答于 2016-04-27 17:35 举报
    function option_image_upload(objs,id) {
        type = id;
        $(objs).parent().append($(objs).clone(true));
        $("#test").empty();
        $("#test").append(objs);
        $("#test").submit();
    }
    
    $('#test').submit(function(){
        $(this).ajaxSubmit({
          type:"post",
          dataType:"json", 
          url:'__MODULE__/'+'Expert/upload_image', 
          success:function(e) {
            // console.log(e);
            if(e.status) {
              $('#img_uploaded'+type).attr('src', e.data.url);
              $('#img_uploaded'+type).css('display', 'block');
              $('#img_path'+type).val(e.data.key);
            }
        }
    }
    
  • 回答于 2016-04-27 17:35 举报

    url可以预览图片 而那个key就是存储
    很明显 你前台获取错了

  • 回答于 2016-04-27 17:37 举报
    <tr>            
        <td>专家图片:<br/>(推荐尺寸:280*280)</td>
        <input type="hidden" name="portrait" id="img_path1" class="img_path">
        <td>
            <span id = "xingxing" class="must_red">*</span>
            <input class="option-image-upload" type="file" onChange="option_image_upload(this, 1)" name="carousel_file1" id="carousel_file1">
        </td>
    </tr>
    

    看没看到。 你看看你自己的隐藏域 你看看名字对不对得上

    1 条回复
    回复于 2016-04-27 17:42 回复

    .....我这个不是前台的问题 只是简单的后台 input框 上传文件。。。。。。。。

  • 回答于 2016-04-27 17:43 举报

    OMG

    3 条回复
    回复于 2016-04-27 17:45 回复

    就是奇怪 图片可以上传到项目网站目录了 然后整条记录 插不进数据库。。。解决不了了。。。不上传图片 gii默认生成的代码就可以。。

    回复于 2016-04-27 17:45 回复

    就是奇怪 图片可以上传到项目网站目录了 然后整条记录 插不进数据库。。。解决不了了。。。不上传图片 gii默认生成的代码就可以。。

    回复于 2016-04-27 18:02 回复

    我其实还没从TP转过来 有的yii功能用着可不方便了 感觉

  • 回答于 2016-04-27 17:44 举报

    我刚学YII 以前用的TP 我有个更新问题也要解决 你帮帮我哦。就是数据库更新问题

    3 条回复
    回复于 2016-04-27 17:46 回复

    。。。我以前也是用TP的 YII整孟B了。。。我也刚学 够呛能帮你解决。。。。

    回复于 2016-04-27 18:01 回复

    嘿嘿。 你看首页 就能看到我的问题

    回复于 2016-04-27 19:04 回复

    哈哈 看到了

    觉得很赞
  • 回答于 2016-04-27 20:09 举报

    查看 $model->getErrors()

  • 回答于 2016-04-27 22:13 举报

    YII的上传功能很强大!

  • 回答于 2016-08-28 17:25 举报

    楼主,我也遇到同样的问题,你的问题怎么解决的

  • 回答于 2016-10-17 15:30 举报

    楼主解决了吗? 我也遇到同样的问题了。。

  • 回答于 2017-04-20 14:10 举报

    我也遇到同样的问题,处理方法如下:

    namespace app\models;
    
    use Yii;
    use yii\db\ActiveRecord;
    
    class Page extends ActiveRecord
    {	
    
        public function rules()
        {
            return [
                [['title', 'img_url'], 'required'],
                [['img_url'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg'], //这里是关键 skipOnEmpty 设为true
            ];
        }
    
    
        public function upload()
        {
            if ($this->validate()) {
            	$file_path = 'uploads/' . time() . $this->img_url->extension;
            	$this->img_url->saveAs($file_path);
                return $file_path;
            } else {
                return false;
            }
        }
    }
    

    action里写法

        public function actionIndex()
        {
            $model = new Page();
            if (Yii::$app->request->isPost && $model->load(Yii::$app->request->post())) {
                $model->img_url = UploadedFile::getInstance($model, 'img_url');
                $file_path      = $model->upload();
                if ($file_path !== false) {
                    $model->img_url  = $file_path;
                    $model->add_date = time();
                    // 文件上传成功
                    if ($model->save()) {
                        $this->redirect(array('step/show', 'id' => $model->id));
                    }
                }
            }
            return $this->render('index', [
                'model' => $model,
            ]);
        }
    
  • 回答于 2017-06-13 18:38 举报

    模型中的rules方法有毛病,检查一下!

  • 回答于 2017-09-08 15:56 举报

    检查一下,rules中的字段,有的字段没通过验证,保存数据失败

您需要登录后才可以回答。登录 | 立即注册
我的丶关键词
助理

我的丶关键词

注册时间:2016-04-25
最后登录:2017-05-09
在线时长:11小时40分
  • 粉丝1
  • 金钱83
  • 威望0
  • 积分193

热门问题