//前端---部分代码
<form class="form-inline" style="margin-top: 20px" method="post" action="/admin/commerce/import" enctype="multipart/form-data" style="display:inline-block">
<div class="form-group">
<label for="commerce_file">选择文件</label>
<input class="form-control input-sm" type="file" name="commerce_file">
</div>
<button type="submit" class="btn btn-info">数据导入按钮</button>
</form>
//后端---原生封装导入方法
public function actionimport()
{
if(!$_FILES['commerce_file']['name'])
{
$this->success('请选择csv格式文件');
}
if($_FILES['commerce_file']['size'] >= '2097152')//2M
{
$this->success('文件不能超过2M');
}
//获取储存的临时文件名
$csv_file = $_FILES['commerce_file']['tmp_name'];
//打开文件获取可读权限
$file = fopen($csv_file,"r");
//输出文本中所有的行,直到文件结束为止
while(! feof($file))
{
//函数从文件指针中读入一行并解析CSV 段
$data_line = fgetcsv($file);
if($data_line)
{
foreach($data_line as $k => $v)
{
//指定文件从gbk编码转换,为utf-8编码
$data_line[$k] = iconv('gbk','utf-8',$v);
}
$data[] = $data_line;
}
}
//关闭打开文件
fclose($file);
$first = $data[0];
//设定表头标题名称
$name = array('ID','名称');
if($first)
{
foreach($first as $k => $v)
{
if($v != $name[$k])
{
$this->success('文件格式错误,请查看文件格式核实');
}
}
}
if($data)
{
//删除第一行数据
unset($data[0]);
//统计插入数量
$sum = 0;
foreach($data as $v)
{
//插入数据方法自己根据框架定义
$rs = Yii::app()->getDb()->createCommand()->insert('sdk_commerce', array(
'id' => $v[0],
'name' => $v[1]
));
$sum += $rs;
}
$this->success('成功导入<font color=red><b>'.$sum.'</b></font>条数据','/admin/commerce/list/');
}
}