如何文件上传,去重复,下载文件

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');  
       }  




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值