怎样上传文件,去除重复数据,下载文件

创建一个uoload方法

上传文件:先实例化上传类,定义上传文件的大小,类型,上传根目录,上传子目录,然后再判断是否上传成功

         public function upload(){
		if(IS_GET){
		    $this->display();
		    exit;
		}
		$upload = new \Think\Upload();//实例化上传类
		$upload->maxSize = 0;//设置附件上传大小
		$upload->exts = array('csv');//设置附件上传类型
		// dump($upload);
		// exit();
		$upload->rootPath = './Public/Upload/';//设置附件上传根目录
		$upload->savePath = '';//设置附件上传(子)目录
		//上传文件
		$info = $upload->upload();
		if(!$info){//上传错误提示错误信息
			$this->error($upload->getError());
		}else{//上传成功
			$this->show('上传成功!');
		}
	}

去重数据:从数据库里获取学号,存入数组,获取上传文件的学号,用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');  
       }  

下载文件:

file_put_contents($file, $current);  //写入文件
       $file_name = "demo.txt";  
       $file_dir = "./Public/uploaddir/";  
       if(!file_exists($file_dir.$file_name)){  
        echo "文件找不到";  
        exit;  
       }else{  
        $file = fopen($file_dir.$file_name,"r");  
        Header("content-type:application/octet-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);  
        exit;  
}  







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值