123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- <?php
- /**
- * Created by PhpStorm.
- * User: sicilon_IT
- * Date: 2020/1/5
- * Time: 9:49
- */
- namespace app\index\controller;
- use think\Controller;
- use think\Request;
- use app\index\logic\paylogic;
- class Fileoper extends Controller
- {
- public function upQuestionsWrite()
- {
- // 获取表单上传文件
- $file = request()->file('file');
- $domainpath = 'https://' . $_SERVER['HTTP_HOST'] . '/Uploads/';
- if (empty($file)) {
- $this->error('请选择上传文件');
- }
- // 移动到框架应用根目录/public/uploads/ 目录下
- $info = $file->move(ROOT_PATH . 'public' . DS . 'Uploads');
- //如果不清楚文件上传的具体键名,可以直接打印$info来查看
- //获取文件(文件名),$info->getFilename() ***********不同之处,笔记笔记哦
- //获取文件(日期/文件名),$info->getSaveName() **********不同之处,笔记笔记哦
- $filename = $info->getSaveName(); //在测试的时候也可以直接打印文件名称来查看
- if ($filename) {
- //$this->success('文件上传成功!');
- $imageUrl = $domainpath . $filename;
- $r_upload['code'] = '200';
- $r_upload['resultData'] = $imageUrl;
- //不转义反斜杠
- return json_encode($r_upload, 320);
- } else {
- // 上传失败获取错误信息
- $this->error($file->getError());
- }
- }
- /*
- * 20210502
- * 导入支侍文件
- * 20210509edit
- * 存入日志
- * 20210509 再次修改,应将uplog主表存入放在子过程中
- * @todo 上传前获取文件名,以防止重复导入
- */
- public function uploadexcelinputdata()
- {
- // 获取表单上传文件
- $file = request()->file('file');
- $domainpath = 'https://app.tjzhxx.cn:1443/Uploads/';
- //echo $file['name'];
- // echo $file->getFilename();
- $inputfilename = $_FILES['file']['name'];
- // $upinfo['upfilename']=$file['name'];
- if (empty($file)) {
- $this->error('请选择上传文件');
- }
- //验证重复上传
- $l_p = new paylogic();
- $upfile['upfilename'] = $inputfilename;
- $isfile = $l_p->getinfobyfname($upfile);
- if (!empty($isfile)) {
- // $this->error('文件已上传过');
- $r_upload['code'] = 0;
- $r_upload['errmsg'] = '文件已上传过';
- return json_encode($r_upload, 320);
- }
- // 移动到框架应用根目录/public/uploads/ 目录下
- $info = $file->move(ROOT_PATH . 'public' . DS . 'Uploads');
- //如果不清楚文件上传的具体键名,可以直接打印$info来查看
- //获取文件(文件名),$info->getFilename() ***********不同之处,笔记笔记哦
- //获取文件(日期/文件名),$info->getSaveName() **********不同之处,笔记笔记哦
- $filename = $info->getSaveName(); //在测试的时候也可以直接打印文件名称来查看
- if ($filename) {
- //$this->success('文件上传成功!');
- $icount = $this->testexcelinputdb($filename, $inputfilename);
- $imageUrl = $domainpath . $filename;
- $r_upload['code'] = '200';
- $r_upload['resultData']['url'] = $imageUrl;
- $r_upload['resultData']['inputcount'] = $icount;
- return json_encode($r_upload, 320);
- } else {
- // 上传失败获取错误信息
- $this->error($file->getError());
- }
- }
- /*
- * 202100502
- * edit
- * 20210509
- * 增加返回总金额
- */
- private function testexcelinputdb($infilename, $inputfilename)
- {
- vendor('PHPExcel.PHPExcel');
- //$phpExcel = new \PHPExcel();
- $objRender = \PHPExcel_IOFactory::createReader('Excel2007');
- $filename = '.' . '/' . 'Uploads' . '/' . $infilename;
- $ExcelObj = $objRender->load($filename);
- $ExcelObj->setActiveSheetIndex(0);
- $l_p = new paylogic();
- $plist = array();
- $i = 2;
- $input_arr = array();
- $sum_input = 0;
- $sum_record = 0;
- $upinfo = array();
- $upinfo['upfilename'] = $inputfilename;
- $upinfo['updatetime'] = date('Y-m-d H:i:s');
- // $inputmoney=$ExcelObj->getActiveSheet()->getCell("H".$i)->getValue();
- $inputsfzid = $ExcelObj->getActiveSheet()->getCell("F" . $i)->getValue();
- while ($inputsfzid > '') {
- $paydetail = array();
- $paydetail['paymoney'] = $ExcelObj->getActiveSheet()->getCell("H" . $i)->getValue();
- $paydetail['sfzid'] = $ExcelObj->getActiveSheet()->getCell("F" . $i)->getValue();
- $paydetail['wname'] = $ExcelObj->getActiveSheet()->getCell("G" . $i)->getValue();
- $paydetail['payclass'] = $ExcelObj->getActiveSheet()->getCell("E" . $i)->getValue();
- $daynumber = $ExcelObj->getActiveSheet()->getCell("D" . $i)->getValue();
- $paydetail['paydate'] = gmdate('Y-m-d', ($daynumber - 25569) * 1440 * 60);
- $paydetail['indate'] = date('Y-m-d');
- //$l_p->savepaydetail($paydetail);
- $sum_input += $paydetail['paymoney'];
- $sum_record += 1;
- array_push($plist, $paydetail);
- $i++;
- // $inputmoney=$ExcelObj->getActiveSheet()->getCell("H".$i)->getValue();
- $inputsfzid = $ExcelObj->getActiveSheet()->getCell("F" . $i)->getValue();
- };
- $upinfo['upcount'] = $sum_record;
- $upinfo['upsummoney'] = $sum_input;
- $rid = $l_p->savenewuplog($upinfo);
- foreach ($plist as &$row) {
- $row['uplogid'] = $rid;
- }
- $icount = $l_p->savepayredetaillist($plist);
- return $icount;
- // echo count($plist);
- // var_dump($plist);
- }
- /**
- * 指定文件位置上传
- *
- * @return void
- */
- public function uploadfilebydir()
- {
- // 获取表单上传文件
- $file = request()->file('file');
- if (empty($file)) {
- $this->error('请选择上传文件');
- }
- $dir = request()->param('dir');
- if (!preg_match("/^[a-z]{5,10}$/", $dir)) {
- $this->error('请求错误');
- }
- $dir = 'Uploads' . '/' . $dir;
- $domainpath = 'https://' . $_SERVER['HTTP_HOST'] . '/' . $dir.'/';
- // 移动到框架应用根目录/public/uploads/ 目录下
- $info = $file->move(ROOT_PATH . 'public' . '/' . $dir);
- //如果不清楚文件上传的具体键名,可以直接打印$info来查看
- //获取文件(文件名),$info->getFilename() ***********不同之处,笔记笔记哦
- //获取文件(日期/文件名),$info->getSaveName() **********不同之处,笔记笔记哦
- $filename = $info->getSaveName(); //在测试的时候也可以直接打印文件名称来查看
- $filename = str_replace(DS,"/",$filename);
- if ($filename) {
- //$this->success('文件上传成功!');
- $imageUrl = $domainpath . $filename;
- $r_upload['code'] = '200';
- $r_upload['resultData'] = $imageUrl;
- //不转义反斜杠
- return json_encode($r_upload, 320);
- } else {
- // 上传失败获取错误信息
- $this->error($file->getError());
- }
- }
- }
|