如何在没有表格的情况下发出yii的帖子请求?

时间:2014-12-04 07:39:50

标签: php api yii

我想使用url在数据库中发送图像。但它发送的是空值。请指导我这个。我想制作一个用于上传图片的api

public function actionTest()
{
    $model = new Users;

    if(isset($_POST['Users']))
    {
       $model->image=$_POST['Users']['image'];

        $model->image=CUploadedFile::getInstance($model,'image');
         echo $model->image;
        echo 'hello';
        if(is_object($model->image)){
            //mkdir(getcwd().'/images/users/' . $model->id."/");
            $name = getcwd().'/images/' .$model->id."/".$model->image->getName();

            $model->image->saveAs($name);
            try{
            $image = Yii::app()->image->load($name);
            $image->resize(50, 50);
            $image->save();
            }
            catch(Exception $ex ){
                 echo 'image has been saved successfully';
            die;
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

越简越好...... 我认为您最好在表格中使用标准Yii fileField()

在视图中:

<?php $form=$this->beginWidget('CActiveForm', array(
 'enableAjaxValidation'=>false,
 'enableClientValidation'=>false,
 'htmlOptions' => array(
    'enctype' => 'multipart/form-data',
 ),
)); ?>
...

<?php echo $form->labelEx($model,'image'); ?> 
<?php echo $form->fileField($model,'image',array('size'=>40,'maxlength'=>255)); ?>
<?php echo $form->error($model,'image'); ?>
<br><br>
<?php echo CHtml::submitButton(  Yii::t('general','Create')  ); ?>

<?php  // show image if it already exists in file system
 if ((getimagesize(Yii::app()->basePath. '/../img/foto/'. $model->article . '.jpg') !== false) ) : ?> 
<?php echo CHtml::image(Yii::app()->baseUrl. '/img/foto/'. $model->article . '.jpg')?> 
<?php endif;    ?>

<?php $this->endWidget(); ?>

在html设置中注明'enctype' => 'multipart/form-data'。这使它上传文件。 然后在控制器端应用文件catch和store

就模型方面而言,我建议密切关注this tutorial

如果你试图做什么。 没有形式你会浪费时间发明自己的文章。