Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用yii中的path将文件上传到mysql表_Php_Mysql_Sql_Yii - Fatal编程技术网

Php 如何使用yii中的path将文件上传到mysql表

Php 如何使用yii中的path将文件上传到mysql表,php,mysql,sql,yii,Php,Mysql,Sql,Yii,我试图上传一个文件到MySQL表,但它不起作用。 我写的是: 视图: 这是rulse: array('doc_ordered_recieved','file','types'=>'pdf', 'allowEmpty'=>true, 'on'=>'update'), 控制器: public function actionCreate() { $model=new Orders; // Uncomment the following li

我试图上传一个文件到MySQL表,但它不起作用。 我写的是:

视图:

这是rulse:

array('doc_ordered_recieved','file','types'=>'pdf', 'allowEmpty'=>true, 'on'=>'update'),
控制器:

public function actionCreate()
    {
        $model=new Orders;

        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

        if(isset($_POST['Orders']))
        {

            $model->attributes=$_POST['Orders'];
            $model->doc_ordered_recieved=CUploadedFile::getInstance($model,'doc_ordered_recieved');
            if($model->save())
            {
                $doc_ordered_recieved->saveAs('http://localhost/files');
                $this->redirect(array('view','id'=>$model->oid));
            }
        }
    $this->render('create',array('model'=>$model,
        ));
    }
请帮帮我我不知道为什么它不起作用

谢谢大家
eliya

只需查看您的代码,我就可以看出您需要更改文件路径

$doc_ordered_recieved->saveAs('http://localhost/files');


此外,您还应提供有关模型的更多信息。

首先,您需要更改规则以添加创建场景:

array('doc_ordered_recieved','file','types'=>'pdf', 'allowEmpty'=>true, 'on'=>'insert,update'),
在控制器的创建操作中,您需要执行以下操作:

public function actionCreate()
{
    $model=new Orders;

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

    if(isset($_POST['Orders']))
    {

        $model->attributes=$_POST['Orders'];
        $uploadedFile = CUploadedFile::getInstance($model,'doc_ordered_recieved');
        if($model->save())
        {
            if(!empty($uploadedFile))  // check if uploaded file is set or not
            {

                if($model->image == null || empty($model->image)){
                    $rnd = rand(0,9999);// generate random number between 0-9999
                    $fileName = "{$rnd}-{$uploadedFile}";
                    $model->image = $fileName;
                }
                $uploadedFile->saveAs(dirname(__FILE__)..'/files/'. $model->doc_ordered_recieved);
                // redirect to success page
            }
            $this->redirect(array('view','id'=>$model->oid));
        }
    }
        $this->render('create',array('model'=>$model,
    ));
}

您是否在查看表单中使用了
enctype
?您好,非常感谢。我按照你的要求做了,但它仍然给了我这样一条消息“Doc Ordered received不能为空”。你能帮我吗???@eli可能在模型规则中你有这样一个:
array('Doc_Ordered_received','required'))
这可能是您尝试在没有图像的情况下保存模型的原因…@eli通过模型验证并保存数据的其他方法是:
$model->save(false)
no
$model->save()
hi在模型中这是我拥有的数组('doc\u ordered\u received','required'))但是我试着用pdf文件保存它,当然,请帮忙,谢谢,表格是为收到的文件定义varchar,可以吗?
$doc_ordered_recieved->saveAs(Yii::app()->basePath.'path/to/localFile');
array('doc_ordered_recieved','file','types'=>'pdf', 'allowEmpty'=>true, 'on'=>'insert,update'),
public function actionCreate()
{
    $model=new Orders;

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

    if(isset($_POST['Orders']))
    {

        $model->attributes=$_POST['Orders'];
        $uploadedFile = CUploadedFile::getInstance($model,'doc_ordered_recieved');
        if($model->save())
        {
            if(!empty($uploadedFile))  // check if uploaded file is set or not
            {

                if($model->image == null || empty($model->image)){
                    $rnd = rand(0,9999);// generate random number between 0-9999
                    $fileName = "{$rnd}-{$uploadedFile}";
                    $model->image = $fileName;
                }
                $uploadedFile->saveAs(dirname(__FILE__)..'/files/'. $model->doc_ordered_recieved);
                // redirect to success page
            }
            $this->redirect(array('view','id'=>$model->oid));
        }
    }
        $this->render('create',array('model'=>$model,
    ));
}