Php 如何使用yii中的path将文件上传到mysql表
我试图上传一个文件到MySQL表,但它不起作用。 我写的是: 视图: 这是rulse: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
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,
));
}