1.上传
先实例化一个类,定义文件的类型,根目录子目录,用if语句判断
$upload = new \Think\Upload();
$upload ->maxSize=0;
$upload ->exts=array('csv');
$upload->rootPath='./Public/Upload/';
$upload->savePath='';
$info=$upload->upload();
if(!$info){
$this->error($upload->getError());
}else{
// $this->success('上传成功!');
$this->import($upload->rootPath.$info['file']['savepath'].$info['file']['savename']);
}
}
2.下载文件
首先定义下载文件的类型,在定义一下保存的路径,用判断语句判断是否能找到,
打开文件,输出内容到浏览器中
$file_name="stu.txt";
$file_dir="./Public/Upload/";
if(!file_exists($file_dir.$file_name)){
echo "找不到";
exit();
}else{
//打开文件
$file=fopen($file_dir.$file_name,"r");
//输入文件标签
header("Content-type:application/octer-stream");
header("Accept-Ranges:bytes");
header("Accept-Length:".filesize($file_dir.$file_name));
header("Content-Disposition:attachment;filename=".$file_name);
//输出内容
//读取文件内容直接输出到浏览器
echo fread($file, filesize($file_dir.$file_name));
fclose($file);
3.上传文件去重(学号去重):
从数据库里获取学号,将它存进一个数组中
将上传文件的存进一个数组中,得到上传的学号
用is_array()函数来判断上传的学号是否存在
if($fp){
$fields=array('no','name','sex');
$model=D('Student');
<span style="white-space:pre;"> </span> $arrNO=$model->getField('no',true);
$arr = array();
while(($row = fgetcsv($fp,1000,","))!== false){
$row=array_combine($fields, $row);
// dump($data);
// exit;
$name = $row['name'];
$row['py'] = SpGetPinyin($name);
if(in_array($row['no'],$arrNO)){
$file = './Public/uploaddir/demo.txt';
$current .= $row['no']."已存在\r\n";
}else{
$arrNO[]=$row['no'];
$arr[]=$row;
$file = './Public/uploaddir/demo.txt';
$current .= $row['no']."导入成功\r\n";
}
if(count($arr)==1000){
$model->addAll($arr);
unset($arr);
}
}
if(count($arr)>0){
$model->addAll($arr);
}
$this->success("导入成功",'index');
}