0) { header("HTTP/1.1 422 Unprocessable Entity"); echo json_encode($fail_arr); exit(); } $conn->beginTransaction(); $sql_str = "SELECT accountid, name FROM account WHERE accountid = :accountid ORDER BY create_at DESC"; $stmt = $conn -> prepare($sql_str); $stmt -> bindParam(":accountid",$salesman); $stmt -> execute(); $saleman = $stmt->fetch(PDO::FETCH_ASSOC); $salesman_name = $saleman['name']; if(!empty($files)){ $englisharr = range('a', 'z'); $files = $_FILES['files']; $newfiles = []; foreach( $files as $file ){ $i = 0; //新陣列的索引編號 foreach( $file as $key => $val ){ $newfiles[$i]['name'] = $files['name'][$key]; $newfiles[$i]['type'] = $files['type'][$key]; $newfiles[$i]['tmp_name'] = $files['tmp_name'][$key]; $newfiles[$i]['error'] = $files['error'][$key]; $newfiles[$i]['size'] = $files['size'][$key]; $i++; } //foreach 第2層 end } $max_size = 4096*4096; //設定允許上傳檔案容量的最大值(1M) $allow_ext = array('jpeg', 'jpg', 'png','JPG','JPEG','PNG','GIF'); //設定允許上傳檔案的類型 $path = '../images/contracts/'; if (!file_exists($path)) { mkdir($path); } $msg_result = ''; //負責接收所有檔案檢測後的回傳訊息 $datetime = (string)date('YmdHis'); $files_id = 'm' . $datetime; // 保養=>b + 日期時間 foreach( $newfiles as $key => $file ){ $randNum = rand(1000,9999); $randEnglish = $englisharr[rand(0,25)]; $file_name = 'm' . (string)date('YmdHis') . $randNum . $randEnglish . $randNum.$file['name']; $msg = upload_chk( $file,$path, $max_size, $allow_ext, $file_name ); if($msg==1){ $msg = '檔案傳送成功!'; $sql_str = "INSERT INTO contract_back_files (files_id, file_name, file_mime, file_size, created_at, created_by) VALUES (:files_id, :file_name, :file_mime, :file_size, :created_at, :created_by)"; $stmt = $conn -> prepare($sql_str); $stmt -> bindParam(':files_id' ,$files_id); $stmt -> bindParam(':file_name' ,$file_name); $stmt -> bindParam(':file_mime' ,$file['type']); $stmt -> bindParam(':file_size' ,$file['size']); $stmt -> bindParam(':created_at' ,$created_at); $stmt -> bindParam(':created_by' ,$created_by); $stmt ->execute(); }else{ throw new PDOException('檔案上傳失敗:' . $msg); } $msg_result .= '第' . ($key+1) . '個上傳檔案的結果:' . $msg . '
'; $src_name = $path.$file['name']; if( file_exists($src_name) ){ //副檔名 $extname = pathinfo($src_name, PATHINFO_EXTENSION); //主檔名 $basename = basename($src_name, '.'.$extname); } } }else{ $files = null; } $sql_str = "INSERT INTO contract_m_signed_back (contract_no, customer, manager, vat, case_name, linkman, lm_tel, address, salesman, salesman_name, files_id, created_at, created_by, qc_official_type) VALUES (:contract_no, :customer, :manager, :vat, :case_name, :linkman, :lm_tel, :address, :salesman, :salesman_name, :files_id, :created_at, :created_by, :qc)"; $stmt = $conn -> prepare($sql_str); $stmt -> bindParam(":contract_no",$contractno); $stmt -> bindParam(":customer",$customer); $stmt -> bindParam(":manager",$manager); $stmt -> bindParam(":vat",$vat); $stmt -> bindParam(":case_name",$case_name); $stmt -> bindParam(":linkman",$linkman); $stmt -> bindParam(":lm_tel",$lm_tel); $stmt -> bindParam(":address",$address); $stmt -> bindParam(":salesman",$salesman); $stmt -> bindParam(":salesman_name",$salesman_name); $stmt -> bindParam(":files_id",$files_id); $stmt -> bindParam(":created_at",$created_at); $stmt -> bindParam(":created_by",$created_by); $stmt -> bindParam(":qc",$qc); $stmt -> execute(); $result = $conn->commit(); if($result){ header("HTTP/1.1 201 Created"); } }catch(PDOException $e){ $conn->rollback(); header("HTTP/1.1 500 Internal Server Error"); die('Error!:'.$e->getMessage()); } }