php判断是否从网站上传数据,ThinkPHP上传文件及如何判断上传数据是否重复

文件上传

1.在ThinkPHP中使用上传功能无需进行特别处理,但要注意,要使用上传功能 表单中需要设置 enctype="multipart/form-data"。

c8cb14353bfea02e366d1f7d86b82b3a.png

2.tp自带了上传文件的类,位置:Think/Upload.class.php。所以tp框架用起来是十分方便的。我们来看下upload方法的实现代码:

//上传文件

public function upload(){

if(IS_GET){

$this->display();

exit;

}

$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('上传成功'.$info['file']['savePath'].$info['file']['savename']);

}

}

3.每个上传的文件是一个记录了下面信息的数组,文件上传成功后,就可以使用这些文件信息来进行其他的数据操作,例如保存到当前数据表或者单独的附件数据表。

3ced25f68045ce381e480f4af9ae0fb2.png

例如,下面表示把上传信息保存到数据表的字段:

$this->success('上传成功'.$info['file']['savePath'].$info['file']['savename']);

4.如何判断上传文件的信息是否重复,首先要从文件中获取数据,如果存在则重复,不执行添加代码,如果不存在,则添加到数据库中。下面是一段判断学号上传是否重复的代码,上传成功执行这段代码即可

$fp=fopen($file,'r');

if($fp){

$fields=array('no','name','sex');

$model=M('newstudent');

$arrNo = $model->getField('no',true);

$arr=array();

while(($row=fgetcsv($fp,1000,","))!==false){

$row=array_combine($fields, $row);

if(in_array($row['no'], $arrNo)){

echo $row['no'].'存在'.'
';

}else{

$arrNo[]=$row['no'];

$arr[]=$row;

echo $row['no'].'导入成功'.'
';

}

if(count($arr)==1000){

$model->addAll($arr);

unset($arr);

}

}

if(count($arr)>0){

$model->addAll($arr);

}

$this->success('添加成功');

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值