在yii框架中用php最原始的代码实现文件的上传
首先是视图层代码
在这里我是用了Yii自带的传值方式,所以先引用
<?php use yii\helpers\Html; use yii\helpers\Url; ?>在使用
<form action="<?=Url::to(['brand/brand_add']) ?>" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="logo" size="45">
</form>
前台仅需要一个简单的表单提交就行,通过表单提交,后台用$_FILES接受文件信息
控制器代码
public function actionBrand_add() { $data = $_POST; if ($data) { $file = $_FILES['file']; $table = "brands"; //var_dump($file); $d = time(); //当前时间段 //$sj = date("Y"); //图片格式 $str = $d.".jpg"; //var_dump($file);die; //判断文件是否存在,否则创建 $dir = iconv("UTF-8", "GBK", "./upload/"); if (!file_exists($dir)){ mkdir ($dir,0777,true); echo '创建文件夹upload成功.'; } else { echo '需创建的文件夹upload已经存在.'; } $path="./upload/$str"; // 定义上传文件的存储位置 //var_dump($path);die; if(is_uploaded_file($file["tmp_name"])){ //执行文件上传(移动上传文件) -->需要移动文件到当前的路径 if(move_uploaded_file($file["tmp_name"],$path)){ echo "文件上传成功!"; //注意:如果你是想把文件名存到数据库你需要在这里直接用sql语句执行添加东西到数据库就可以了,并且文件的路径+名字是:$path.$newfile. }else{ die("上传文件失败!"); //如果上传失败就提示失败 } }else{ die("不是一个上传文件!"); //如果不是文件就提示这个 } $model = new Brands; $data['brand_logo']=$path; $model->Add($table,$data); $this->redirect(array('brand/brand_list')); } else{ return $this->render('brand_add.html'); } }再次出使用了自己封装的Yii框架的增删改查的Model层
<?php namespace backend\models; use Yii; use yii\base\Model; class Brands extends Model { //添加 public function Add($table,$data){ return $info = Yii::$app->db->createCommand()->insert($table,$data)->execute(); } //展示 public function Ls($table,$k = 1,$where = 1){ return $info = Yii::$app->db->createCommand("SELECT * FROM $table WHERE $k = $where")->queryAll(); } //删除 public function Del($id){ return $info = Yii::$app->db->createCommand()->delete('brands',"id = $id")->execute(); } //修改 public function Ups($data,$id){ return $info = Yii::$app->db->createCommand()->update('brands',$data,"id = $id")->execute(); } }
以上内容便是文件上传了,希望可以帮助到你。