0) { header("HTTP/1.1 422 Unprocessable Entity"); echo json_encode($fail_arr); exit(); } $conn->beginTransaction(); $sql_str = "UPDATE contract_m_signed_back SET contract_no=:contract_no, customer=:customer, manager=:manager, vat=:vat, case_name=:case_name, linkman=:linkman, lm_tel=:lm_tel, address=:address, salesman=:salesman, qc_official_type=:qc WHERE id = :id"; $stmt = $conn -> prepare($sql_str); $stmt -> bindParam(':contract_no' ,$contract_no); $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(':qc' ,$qc); $stmt -> bindParam(':id' ,$id); $stmt -> execute(); if(!empty($deletefiles)){ $sql_str = "DELETE FROM contract_back_files WHERE id IN ($deletefiles)"; $stmt = $conn -> prepare($sql_str); $stmt -> execute(); } 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 = ($files_id !== null ) ? $files_id : 'm' . $datetime; // 新梯=>m + 日期時間 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; } $conn->commit(); }catch(PDOException $e) { $conn->rollback(); header("HTTP/1.1 500 Internal Server Error"); die('Error!:'.$e->getMessage()); } }