barton 2016-04-29 10:57:10 3327次浏览 2条回复 0 0 0

模型

<?php
namespace bberp\models\wms;

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

class UploadForm extends Model
{
    /**
     * @var UploadedFile
     */
    public $file;

    public function rules()
    {
        return [
            [['file'], 'file'],
        ];
    }
    

}

视图

<form method="POST"   id="name1" action="<?= Url::toRoute(['branch/import']) ?>" enctype = "multipart/form-data" >
<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>">
<div class="dialog" style="display:none" id="daoru" >
    <div class="mask" style="position: fixed; top:0;bottom:0 ; left:0; right:0; background-color:rgba(0,0,0,0.4); z-index: 9;"></div>
    <div id="" class="dialog" style="visibility: visible; zoom: 1; opacity: 1; z-index: 65534; width: 422px; width:500px; position: absolute; top: 50%; left: 50%; margin:-211px 0 0 -250px; background-color:#fff; ">      
        <div class="dialog-box">
            <div class="dialog-head clearfix" style="position: relative;">
              <div class="dialog-title flt" style="line-height:30px; padding-left:10px; font-size:14px; font-weight: bold; border-bottom:1px solid #ddd;">导入</div>
              <a class="btn-close frt" href="javascript:void(0)" onclick="Id()" style="position: absolute; right:0px; top:0px; display: block; height:30px; width:30px; text-align: center; line-height: 30px;">X</a>
            </div>
            <div class="dialog-body" style="padding:10px;">
                <h4 style="padding: 10px; font-size: 12px; color: #222;">上传.CSV文件</h4>
                <div class="division" style="padding:5px; margin: 10px; border:1px solid #d8d8d8;">
                    <input type="file" name="file" id="ImportCSV" value="">
                </div>

                <div class="table-action" style="padding: 20px 10px; text-align: center;">
                    <button class="btn btn-sm btn-primary " type="submit"  style="border:none; "><span class="ace-icon fa  align-top bigger-125" style="padding-top:2px;" >导入</span></button>
                </div>

            </div>
        </div>
    </div>
</div>
</form>

控制器

public function actionImport()
	{
         $model = new UploadForm();          
		if (Yii::$app->request->isPost) {
            $file = UploadedFile::getInstance($model, 'file');
            if($model->validate()){
            	$model->file->saveAs('uploads/' . $model->file->baseName . '.' . $model->file->extension);
            }else{
            	echo 222;exit;
            }
        }else{
        	echo '000';exit;
        }
	}

为什么导入图片,报错 Call to a member function saveAs() on null in,有什么问题

  • 回复于 2016-05-02 14:45 举报

    controller

    $model = new UploadForm();  
    $file = UploadedFile::getInstance($model, 'file');
    

    //是不是应该是
    $model-> file = $file?

    2 条回复
    回复于 2016-05-02 20:18 回复

    不是,这个方法获取不到值

    回复于 2016-05-02 20:21 回复

    怎么获取到页面上传的文件呢,我用的form

  • 回复于 2016-05-03 08:31 举报

    你的 $model->file 是null
    $model 只有new操作,没有任何赋值操作
    具体不知道你的实现逻辑,所以只能给出大概的思考逻辑,自己debug一下吧。 应该是你只做了教程的一部分导致的。

    1 条回复
    回复于 2016-05-03 09:41 回复

    我视图写的有问题没,enctype = "multipart/form-data" 写上这个怎么获取不到jpg的信息呢

    觉得很赞
您需要登录后才可以回复。登录 | 立即注册