TestController.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609
  1. <?php
  2. namespace app\api\controller\test;
  3. use app\api\controller\ZskkDefaultController;
  4. use app\api\dao\xz\XzDao;
  5. use app\api\model\api\ApiModel;
  6. use app\api\model\department\DepartmentModel;
  7. use app\api\model\dmlog\DmlogModel;
  8. use app\api\model\doctor\DoctorModel;
  9. use app\api\model\dr\DrModel;
  10. use app\api\model\exam\ExamModel;
  11. use app\api\model\institution\InstitutionModel;
  12. use app\api\model\rcontact\RcontactModel;
  13. use app\api\model\rcost\RcostModel;
  14. use app\api\model\remote\RemoteModel;
  15. use app\api\model\report\ReportModel;
  16. use app\api\model\share\ShareModel;
  17. use app\api\servies\butt\ButtService;
  18. use app\api\servies\qc\QcService;
  19. use app\api\servies\report\ReportService;
  20. use app\api\servies\template\TemplateService;
  21. use app\api\servies\xz\XzService;
  22. use app\api\validate\template\TemplateValidate;
  23. use app\api\validate\test\TestValidate;
  24. use app\api\servies\test\TestService;
  25. use app\api\utils\MsgUtils;
  26. use app\common\library\MacIp;
  27. use app\common\library\ucloud\Proxy;
  28. use app\common\library\send_message;
  29. use app\common\library\uploadToCloud;
  30. use Aws\S3\S3Client;
  31. use Aws\Test\S3\S3ClientTest;
  32. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  33. use think\Exception;
  34. use think\exception\DbException;
  35. use think\exception\PDOException;
  36. use think\facade\Cache;
  37. use app\api\utils\UUIDUtils;
  38. use think\Db;
  39. use think\facade\Log;
  40. use think\facade\Request;
  41. use think\file\UploadedFile;
  42. use think\Session;
  43. use function fast\e;
  44. use PHPExcel_IOFactory;
  45. use Mpdf\Mpdf;
  46. use TCPDF;
  47. use SoapDiscovery;
  48. use SoapClient;
  49. use OSS\OssClient;
  50. use OSS\Core\OssException;
  51. use think\Controller;
  52. use PHPMailer\PHPMailer\PHPMailer;
  53. use Zend\Mail\Message;
  54. use Zend\Mail\Transport\Smtp as SmtpTransport;
  55. use Zend\Mail\Protocol;
  56. use Zend\Mime\Part;
  57. class TestController extends Controller
  58. {
  59. protected $needToken = false;
  60. protected $logName = "TestController";
  61. public function testQc20250123(QcService $qcService) {
  62. $qcService->testAnalysis();
  63. }
  64. public function get()
  65. {
  66. $images_data = array(
  67. array("name" => "Tom", "IMAGENUMBER" => "80"),
  68. array("name" => "Mary", "IMAGENUMBER" => "90"),
  69. array("name" => "Jack", "IMAGENUMBER" => "85"),
  70. );
  71. // 按成绩升序排序
  72. $sort = array();
  73. foreach ($images_data as $k_i=>$v_i)
  74. {
  75. $sort[$k_i] = $v_i['IMAGENUMBER'];
  76. }
  77. array_multisort($sort, SORT_ASC, $images_data);
  78. // 输出结果
  79. var_dump($images_data);die;
  80. foreach ($students as $row) {
  81. echo $row["name"] . $row["score"];
  82. }
  83. }
  84. public function testOne(TestService $test) {
  85. var_dump(DmlogModel::select());
  86. var_dump(1);die;
  87. $url = "http://111.53.165.106:9605/zskk/patient/syncExams";
  88. $data = [
  89. 'studyUid'=>'123asd123',
  90. 'study_id'=>'fghjkl'
  91. ];
  92. $a = $this->curlPost($url,$data);
  93. var_dump($a);die;
  94. try{
  95. $a = (InstitutionModel::where('ids',1)->find());
  96. }catch (Exception $e){
  97. var_dump($e->getMessage());die;
  98. }
  99. var_dump($a);
  100. die;
  101. $a = 'mGcripTrD+kUDwhjHsB8TfDeo4obPs4vDFVeTR/iHGFMfYqiBktDQ7BXrxMjQJUz/wUHnfZcKH2JjfffOVzfzAatupwpiGFqsnTyhxJ7kJYxMu8Wv5v6twocWPx6Eqb7';
  102. $key = '1234567890000';
  103. $method = 'aes-128-ecb';
  104. // $encrypted = openssl_encrypt($a,'AES-128-ECB',$key,OPENSSL_RAW_DATA);
  105. $decrypted = openssl_decrypt(base64_decode($a),'AES-128-ECB',$key,OPENSSL_RAW_DATA);
  106. var_dump($decrypted);die;
  107. // $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($method));
  108. $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-128-ecb'));
  109. $encrypted = openssl_encrypt($a, 'AES-128-CBC', $key,0,$iv);
  110. var_dump($encrypted);
  111. $decrypted = openssl_decrypt($encrypted, 'AES-128-CBC', $key,0,$iv);
  112. var_dump($decrypted);die;
  113. var_dump(mail('912540678@qq.com','test','test','company@pacsonline.cn'));
  114. die;
  115. phpinfo();die;
  116. $phone = '13763459789';
  117. $institution = '介休市人民医院';
  118. $a = send_message::sendReportShortMessage($phone,$institution);
  119. var_dump(date('Y-m-d H:i:s'));
  120. var_dump($a);die;
  121. var_dump(ApiModel::column('id,action'));die;
  122. set_time_limit(0);
  123. $data = Db::table('exams')->where('institution_id','43600001')->where("name like '%T'")->field('id,name')->select();
  124. foreach ($data as $k=>$v)
  125. {
  126. Db::table('exams')->where('id',$v['id'])->update(['name'=>trim(trim($v['name'],'t'))]);
  127. }
  128. echo 'over';
  129. // var_dump($data);
  130. die;
  131. $this->get();
  132. die;
  133. $info = '141.71';
  134. var_dump(base64_encode(iconv('UTF-8','GBK',$info)));
  135. $noteId = '312265';
  136. var_dump( base64_encode(str_pad(base_convert($noteId,10,36),6,'0',STR_PAD_LEFT)));die;
  137. echo 'over';die;
  138. echo strtotime('20240422010101');
  139. echo '<br>';
  140. echo strtotime('2024-04-22 01:01:01');die;
  141. phpinfo();die;
  142. print_r(UUIDUtils::uuid());
  143. die;
  144. $this->get();
  145. die;
  146. }
  147. public function getAllExam($id)
  148. {
  149. set_time_limit(0);
  150. $exam = ExamModel::where('institution_id',$id)->where('status',1)->order('createdAt asc')->limit(1,10)->select();
  151. foreach ($exam as $k=>$v)
  152. {
  153. // $url = "https://query.pacsonline.cn/query/key?study_id=".$v['study_id'];
  154. $url = "https://query.pacsonline.cn/query/key?study_id=56d52d2d09ee920942ee198adb0f6712";
  155. $data = $this->curl_get($url);
  156. $data = json_decode($data,true);
  157. foreach ($data as $value)
  158. {
  159. $key = $value;
  160. var_dump($key);
  161. $this->langchao($key,$v['institution_id']);
  162. }
  163. }
  164. }
  165. public function excel()
  166. {
  167. $data = DB::table('institution')->field('id,name,province,createdAt')->order('province')->select();
  168. $array = [];
  169. foreach ($data as $k=>$v)
  170. {
  171. if(!empty($v['province']))
  172. {
  173. $time = explode(' ',$v['createdat']);
  174. $num = '';
  175. $num = DB::table('exams')->where('institution_id',$v['id'])->where("createdAt>DATE_SUB(CURDATE(), INTERVAL 1 MONTH)")->count();
  176. $ins = ['name'=>$v['name'],'province'=>$v['province'],'num'=>$num,'createdat'=>$time[0]];
  177. $array[] = $ins;
  178. }
  179. }
  180. $this->expExcel($array);
  181. }
  182. public function down()
  183. {
  184. $a = [];
  185. $data = [];
  186. foreach ($a as $k=>$v)
  187. {
  188. if($k == 0)
  189. {
  190. continue;
  191. }
  192. $b = explode('hls/',$v);
  193. $c = explode('.',$b[1]);
  194. $data[$c[0]] = $k;
  195. }
  196. var_dump($data);die;
  197. $this->rename();
  198. }
  199. public function insertMessage()
  200. {
  201. // $institution = Db::table('institution')->where(" id not like '%730900%'")->where('id','not in',$ids)->select();
  202. $institution = Db::table('institution')->select();
  203. $insert = [];
  204. foreach ($institution as $v)
  205. {
  206. // $time = Db::table('exams')->where('institution_id',$v['id'])->min('createdAt');
  207. // $s = strtotime($time);
  208. // if($s > strtotime('2021-10-01'))
  209. // {
  210. // echo '`'.$v['id']; echo " ";
  211. // echo $v['name'];
  212. // echo "<br>";
  213. // }
  214. $html = "<div>为了给您提供更好、更稳定的服务,冠医云平台将在2022年8月15日到8月20日每天20:00-24:00、00:00-06:00进行升级。期间系统会偶尔出现分钟级的访问不可达或波动,如遇到异常请您稍后重试,感谢您的理解与支持!</div>";
  215. $info = [
  216. 'id'=>UUIDUtils::uuid(),
  217. 'title'=>'紧急通知',
  218. 'is_read'=>0,
  219. 'content'=>$html,
  220. 'type'=>10,
  221. 'institution_id'=>$v['id']
  222. ];
  223. Db::table('messages')->insert($info);
  224. }
  225. die;
  226. }
  227. public function rename()
  228. {
  229. $path = './dcm/';
  230. $path1 = './video/';
  231. $d = scandir($path);
  232. unset($d[0]);
  233. unset($d[1]);
  234. $file = array_values($d);
  235. foreach ($file as $k=>$v)
  236. {
  237. $arr = explode('.',$v);
  238. $num = str_replace('index','',$arr[0]);
  239. if($num < 10)
  240. {
  241. $name = '1000'.$num;
  242. }elseif(10 <= $num && $num < 100)
  243. {
  244. $name = '100'.$num;
  245. }elseif(100 <= $num && $num < 1000)
  246. {
  247. $name = '10'.$num;
  248. }elseif(1000 <= $num && $num < 10000)
  249. {
  250. $name = '1'.$num;
  251. }else{
  252. $name = $num;
  253. }
  254. $name = $name.'.'.$arr[1];
  255. copy($path.$v,$path1.$name);
  256. }
  257. }
  258. public function getDcmUrl()
  259. {
  260. $ids = [
  261. '050cf8b8bab853f2b7114ec2832eb1aa',
  262. '9bc1e5c969868eefb6601e22cfa71ff5',
  263. '8ae04e9bfe285b99a4d21d222e334bc8',
  264. '329caacb9ce20483e811c397a9cbb94f',
  265. 'd8ce01ac97786a77e961bebb5e343344',
  266. '79165ca479770ed5224d478bd6238f59',
  267. '9383ce5b645a095a2a6dbdc820d32c26',
  268. 'f4a253e66d47f0b1602f37839ad9e8da',
  269. '1aa32590c9989ba753f20741e0a62c20',
  270. 'd1fd00f02a494b6ec9c6545e84d9d978',
  271. 'f1cca331ce2da21cfef02645165e6cb7',
  272. 'c37e60d68b282f3795d0ba6cda50a77b',
  273. '6c353110bb4a35551b49164a98609dd3',
  274. '76e72996c320e22371094f8b298e197d',
  275. 'b9beaf63c3170f32d6c188c8a265f36f',
  276. '8fb237cf11a64a13e0b8b79257b135f0',
  277. '14a6904c2f6dc4fd3664fa1549c5cbb9'
  278. ];
  279. ini_set('max_execution_time', 6000);
  280. $ids = DB::table('exams')
  281. ->where('study_id','in',$ids)
  282. // ->alias('e')
  283. // ->join(['report'=>'r'],'r.exam_id=e.id and r.type=1')
  284. // ->where("e.body_part='chest'")
  285. // ->where('e.exam_status',9)
  286. // ->where("r.description not like '%结节%'")
  287. // ->where("r.impression not like '%结节%'")
  288. // ->where("e.exam_class='CT'")
  289. // ->page(3,10)
  290. // ->order('e.createdAt desc')
  291. // ->field('e.study_id,e.name,r.description,r.impression,e.createdAt')
  292. ->select();
  293. $array = [];
  294. foreach ($ids as $k=>$v)
  295. {
  296. $i = 1;
  297. $info = [];
  298. $list = [];
  299. $study = $v['study_id'];
  300. $name = $v['name'];
  301. $url = "https://parsecallback.pacsonline.cn/study/query?address=&study_id=$study";
  302. $info = $this->curl_get($url);
  303. $a = json_decode($info,true);
  304. $list= $a['studies'][0]['seriesList'];
  305. if(!empty($list))
  306. {
  307. foreach ($list as $k1=>$v1)
  308. {
  309. $ins = [];
  310. $ins = $v1['instances'];
  311. foreach ($ins as $v2)
  312. {
  313. $file = '';
  314. $url = str_replace('dicomweb','https',$v2['url']);
  315. $file=$this->curl_get($url);
  316. if($file){
  317. $uploads_dir = './dcm/'.$study.'/'.$v2['series_id'].'/';
  318. if (!file_exists($uploads_dir)) {
  319. mkdir($uploads_dir,0777,true);
  320. }
  321. $path=file_put_contents($uploads_dir.$i.'.dcm',$file);
  322. if(!$path){
  323. var_dump($i);
  324. }
  325. }
  326. // $data = ['url'=>$url];
  327. $data = ['url'=>$url,'name'=>$name];
  328. $array[] = $data;
  329. $i++;
  330. }
  331. }
  332. }
  333. }
  334. echo 'over';
  335. // return $array;
  336. // var_dump($array);die;
  337. // $this->expExcel($array);die;
  338. }
  339. public function expExcel($con)
  340. {
  341. // 1.选取表中要输出数据
  342. // $con = array(
  343. // [
  344. // 'id' => 1,
  345. // 'name' => '名字',
  346. // 'image' => '头像'
  347. // ],
  348. // [
  349. // 'id' => 2,
  350. // 'name' => '名字2',
  351. // 'image' => '头像2'
  352. // ],
  353. //
  354. // );
  355. //没有第二部
  356. require_once(CORE_PATH . '/../../../vendor/phpoffice/phpexcel/Classes/PHPExcel.php');
  357. //3.实例化PHPExcel类
  358. $objPHPExcel = new \PHPExcel();
  359. //4.激活当前的sheet表
  360. $objPHPExcel->setActiveSheetIndex(0);
  361. //5.设置表格头(即excel表格的第一行)
  362. $objPHPExcel->setActiveSheetIndex(0)
  363. ->setCellValue('A1', '医院名称')
  364. ->setCellValue('B1', '检查数量')
  365. ->setCellValue('C1', '患者数量')
  366. ->setCellValue('D1', '已绑定的检察数')
  367. ->setCellValue('E1', '远程诊断发起数量')
  368. ->setCellValue('F1', '远程诊断接受数量')
  369. ->setCellValue('G1', '安装日期')
  370. ->setCellValue('H1', '最后上传时间');
  371. // 设置表格头水平居中
  372. $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()
  373. ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  374. $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment()
  375. ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  376. $objPHPExcel->setActiveSheetIndex(0)->getStyle('C1')->getAlignment()
  377. ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  378. $objPHPExcel->setActiveSheetIndex(0)->getStyle('D1')->getAlignment()
  379. ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  380. // $objPHPExcel->setActiveSheetIndex(0)->getStyle('E1')->getAlignment()
  381. // ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  382. // $objPHPExcel->setActiveSheetIndex(0)->getStyle('F1')->getAlignment()
  383. // ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  384. // $objPHPExcel->setActiveSheetIndex(0)->getStyle('G1')->getAlignment()
  385. // ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  386. //设置列水平居中
  387. $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()
  388. ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  389. $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment()
  390. ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  391. $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment()
  392. ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  393. $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment()
  394. ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  395. $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment()
  396. ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  397. $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment()
  398. ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  399. $objPHPExcel->setActiveSheetIndex(0)->getStyle('G')->getAlignment()
  400. ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  401. //设置单元格宽度
  402. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(30);
  403. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(10);
  404. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(10);
  405. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(10);
  406. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(10);
  407. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(30);
  408. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(30);
  409. //6.循环刚取出来的数组,将数据逐一添加到excel表格。
  410. for ($i = 0; $i < count($con); $i++) {
  411. $objPHPExcel->getActiveSheet()->setCellValue('A' . ($i + 2), $con[$i]['ins']);//
  412. $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $con[$i]['exams']);//姓名
  413. $objPHPExcel->getActiveSheet()->setCellValue('C' . ($i + 2), $con[$i]['patient']);//姓名
  414. $objPHPExcel->getActiveSheet()->setCellValue('D' . ($i + 2), $con[$i]['bind']);//姓名
  415. $objPHPExcel->getActiveSheet()->setCellValue('E' . ($i + 2), $con[$i]['send']);//姓名
  416. $objPHPExcel->getActiveSheet()->setCellValue('F' . ($i + 2), $con[$i]['get']);//姓名
  417. $objPHPExcel->getActiveSheet()->setCellValue('G' . ($i + 2), $con[$i]['time']);//姓名
  418. $objPHPExcel->getActiveSheet()->setCellValue('H' . ($i + 2), $con[$i]['max']);//姓名
  419. }
  420. //7.设置保存的Excel表格名称
  421. $filename = 'user' . date('ymd', time()) . '.xls';
  422. //8.设置当前激活的sheet表格名称
  423. $objPHPExcel->getActiveSheet()->setTitle('user');
  424. //9.设置浏览器窗口下载表格
  425. header("Content-Type: application/force-download");
  426. header("Content-Type: application/octet-stream");
  427. header("Content-Type: application/download");
  428. header('Content-Disposition:inline;filename="' . $filename . '"');
  429. //生成excel文件
  430. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  431. //下载文件在浏览器窗口
  432. $objWriter->save('php://output');
  433. exit;
  434. }
  435. function http_get_data($url) {
  436. $ch = curl_init ();
  437. curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, 'GET' );
  438. curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
  439. curl_setopt ( $ch, CURLOPT_URL, $url );
  440. ob_start ();
  441. curl_exec ( $ch );
  442. $return_content = ob_get_contents ();
  443. ob_end_clean ();
  444. $return_code = curl_getinfo ( $ch, CURLINFO_HTTP_CODE );
  445. return $return_content;
  446. // $return_content = http_get_data($url);
  447. // $filename = 'test3.jpg';
  448. // $fp= @fopen($filename,"a"); //将文件绑定到流
  449. // fwrite($fp,$return_content); //写入文件
  450. }
  451. function curl_get($url){
  452. $header = array(
  453. 'Accept: application/json',
  454. );
  455. $curl = curl_init();
  456. //设置抓取的url
  457. curl_setopt($curl, CURLOPT_URL, $url);
  458. //设置头文件的信息作为数据流输出
  459. curl_setopt($curl, CURLOPT_HEADER, 1);
  460. // 超时设置,以秒为单位
  461. // curl_setopt($curl, CURLOPT_TIMEOUT, 10);
  462. // 超时设置,以毫秒为单位
  463. // curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500);
  464. // 设置请求头
  465. curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
  466. //设置获取的信息以文件流的形式返回,而不是直接输出。
  467. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  468. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  469. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  470. //执行命令
  471. $data = curl_exec($curl);
  472. if (curl_error($curl)) {
  473. print "Error: " . curl_error($curl);
  474. } else {
  475. // 打印返回的内容
  476. // var_dump($data);
  477. curl_close($curl);
  478. }
  479. // return $data;
  480. }
  481. public function getCurl($url)
  482. {
  483. $ch = curl_init();
  484. curl_setopt($ch, CURLOPT_URL,$url);
  485. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  486. curl_setopt($ch, CURLOPT_POST,1);
  487. $output = curl_exec($ch);
  488. curl_close($ch);
  489. echo $output;
  490. }
  491. function curlPost($url, $data) {
  492. //初使化init方法
  493. $ch = curl_init();
  494. //指定URL
  495. curl_setopt($ch, CURLOPT_URL, $url);
  496. //设定请求后返回结果
  497. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  498. //声明使用POST方式来进行发送
  499. curl_setopt($ch, CURLOPT_POST, 1);
  500. //发送什么数据呢
  501. curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  502. //忽略证书
  503. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  504. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  505. //忽略header头信息
  506. curl_setopt($ch, CURLOPT_HEADER, 0);
  507. //设置超时时间
  508. // curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  509. //发送请求
  510. $output = curl_exec($ch);
  511. //关闭curl
  512. curl_close($ch);
  513. //返回数据
  514. return $output;
  515. }
  516. function t() {
  517. // echo 2;
  518. $email = '951002432@qq.com';
  519. $name = '测试';
  520. $dcmPath = '';
  521. $mail = new PHPMailer(true);
  522. $mail->CharSet ="UTF-8"; //设定邮件编码
  523. $mail->SMTPDebug = 0; // 调试模式输出
  524. $mail->isSMTP(); // 使用SMTP
  525. $mail->Host = 'smtp.exmail.qq.com'; // SMTP服务器
  526. $mail->SMTPAuth = true; // 允许 SMTP 认证
  527. $mail->Username = 'company@pacsonline.cn'; // SMTP 用户名 即邮箱的用户名
  528. $mail->Password = 'Zskk1234'; // SMTP 密码 部分邮箱是授权码(例如163邮箱)
  529. $mail->SMTPSecure = 'ssl'; // 允许 TLS 或者ssl协议
  530. $mail->Port = 465;
  531. // $mail->SMTPOptions = [
  532. // 'ssl' => [
  533. // 'verify_peer' => false,
  534. // 'verify_peer_name' => false,
  535. // 'allow_self_signed' => true
  536. // ]
  537. // ];
  538. $mail->SMTPOptions = array(
  539. 'ssl' => array(
  540. 'verify_peer' => false,
  541. 'verify_peer_name' => false,
  542. 'allow_self_signed' => true
  543. )
  544. ); // 服务器端口 25 或者465 具体要看邮箱服务器支持
  545. $mail->setFrom('company@pacsonline.cn', '冠医云'); //发件人
  546. $mail->addAddress($email, ''); // 收件人
  547. //$mail->addAddress('ellen@example.com'); // 可添加多个收件人
  548. $mail->addReplyTo('company@pacsonline.cn', '冠医云'); //回复的时候回复给哪个邮箱 建议和发件人一致
  549. //$mail->addCC('cc@example.com'); //抄送
  550. //$mail->addBCC('bcc@example.com'); //密送
  551. $zipPath = ROOT_PATH . 'public';
  552. // $maxsize = 45 * 1024 * 1024;
  553. $mail->Subject = $name.'影像';
  554. // if(filesize($zipPath.'/'.$dcmPath) < $maxsize)
  555. // {
  556. // //发送附件
  557. //// $mail->addAttachment($zipPath.'a.zip'); // 添加附件
  558. // $mail->addAttachment($zipPath.'/'.$dcmPath, $name.'.zip'); // 发送附件并且重命名
  559. // $mail->Body = "链接将于".date('Y-m-d',time()+10*24*3600)."失效,请即时下载";
  560. // $mail->AltBody = "链接将于".date('Y-m-d',time()+10*24*3600)."失效,请即时下载";
  561. // }else{
  562. //发送链接地址
  563. //Content
  564. $mail->isHTML(true);
  565. $mail->Body = "<a href='https://tempjn2.eos.jinan-4.cmecloud.cn/$dcmPath'>下载".$name."影像</a>"."<br>链接将于".date('Y-m-d',time()+3*24*3600)."失效,请及时下载";
  566. $mail->send();
  567. return '1';
  568. }
  569. }