php - 如何使用 yii 中的路径将文件上传到 mysql 表

标签 php mysql sql yii

我尝试将文件上传到 MySQL 表,但不起作用。 这是我写的:

查看:

<div class="row">
    <?php echo $form->labelEx($model,'doc_ordered_recieved'); ?>
    <?php echo $form->fileField($model,'doc_ordered_recieved'); ?>
    <?php echo $form->error($model,'doc_ordered_recieved'); ?>
</div>

型号: 我添加这个属性:

public $doc_ordered_recieved;

这个规则:

array('doc_ordered_recieved','file','types'=>'pdf', 'allowEmpty'=>true, 'on'=>'update'),

Controller :

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,
        ));
    }

请帮助我,我不知道为什么它不起作用???

谢谢大家 埃利亚

最佳答案

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

array('doc_ordered_recieved','file','types'=>'pdf', 'allowEmpty'=>true, 'on'=>'insert,update'),

并且在 Controller 的创建操作中,您需要执行以下操作:

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,
    ));
}

关于php - 如何使用 yii 中的路径将文件上传到 mysql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24912671/

相关文章:

php - 推荐的 paypal php sdk 版本,提供 poodle sslv3 错误并实际工作

mysql - 连接/合并两个表,即兴/组成 "missing"条目

mysql - 查询以获取记录及其在数据库中的排名

MySQL SELECT 函数求和当前数据

php - PHP/MySQL 中的异步消息传递?

javascript - 刷新多个具有相同ID的div

php - MySql 获取超过 7 天的记录 (Varchar)

php - if(isset($_POST()) 始终为 false

mysql - joomla 2.5查询从一个表中选择插入到另一个表中

在指定日期之前显示的 SQL 查询