You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.5 KiB
108 lines
3.5 KiB
<?php
|
|
ini_set('display_errors', 'on');
|
|
|
|
class Bpm_Download_files
|
|
{
|
|
/**
|
|
* 連接資料庫
|
|
*/
|
|
function connectionDB()
|
|
{
|
|
$envFile = __DIR__ . '/../../../.env';
|
|
if (file_exists($envFile)) {
|
|
$lines = file($envFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
|
|
if ($lines !== false) {
|
|
foreach ($lines as $line) {
|
|
list($key, $value) = explode('=', $line, 2);
|
|
$key = trim($key);
|
|
$value = trim($value);
|
|
putenv("$key=$value");
|
|
}
|
|
}
|
|
}
|
|
date_default_timezone_set("Asia/Taipei");
|
|
$host = getenv('DB_BPM_HOST');
|
|
$dbport = getenv('DB_BPM_PORT');
|
|
$dbuser = getenv('DB_BPM_USERNAME');
|
|
$dbpassword = getenv('DB_BPM_PASSWORD');
|
|
$dbname = getenv('DB_BPM_DATABASE');
|
|
|
|
try {
|
|
$options = [
|
|
PDO::ATTR_PERSISTENT => false,
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
PDO::ATTR_EMULATE_PREPARES => false,
|
|
PDO::ATTR_STRINGIFY_FETCHES => false,
|
|
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4',
|
|
];
|
|
$pdo = new PDO('mysql:host=' . $host . ';port=' . $dbport . ';dbname=' . $dbname . '', $dbuser, $dbpassword, $options);
|
|
$pdo->exec('SET CHARACTER SET utf8mb4');
|
|
return $pdo;
|
|
} catch (PDOException $e) {
|
|
die("Something wrong: {$e->getMessage()}");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 結束資料庫連線
|
|
*/
|
|
function endConnectionDB($pdo)
|
|
{
|
|
unset($pdo);
|
|
}
|
|
|
|
// /**
|
|
// * 取得下一個新的作番
|
|
// * @param string $facility_type : M:新梯 T:汰改 B:保養
|
|
// * @return array $new_facility_arr
|
|
// */
|
|
function downloadBPMFilesByFormNo($tablename, $form_column_name, $form_no)
|
|
{
|
|
$fd_id = $this->getFd_id($tablename, $form_column_name, $form_no);
|
|
|
|
$pdo = $this->connectionDB();
|
|
$pdo->exec('SET CHARACTER SET utf8mb4');
|
|
$sql = "
|
|
SELECT * FROM sys_att_main AS b
|
|
LEFT JOIN sys_att_file AS c
|
|
ON b.fd_file_id = c.fd_id
|
|
WHERE b.fd_model_id = :fd_id
|
|
";
|
|
$sth = $pdo->prepare($sql);
|
|
$sth->bindParam(':fd_id', $fd_id);
|
|
$sth->execute();
|
|
$result = $sth->fetchAll();
|
|
|
|
foreach ($result as $row) {
|
|
$fd_file_name = $row['fd_file_name'];
|
|
$fd_file_path = "/public/bpm/" . $row['fd_file_path'];
|
|
// $filePath = $_SERVER['DOCUMENT_ROOT'] . $fd_file_path;
|
|
$str = "";
|
|
$str .= '<a href="' . $fd_file_path . '" download="' . $fd_file_name . '">' . $fd_file_name . '</a>';
|
|
$str .= "<br/>";
|
|
echo $str;
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
function getFd_id($tablename, $form_column_name, $form_no)
|
|
{
|
|
$pdo = $this->connectionDB();
|
|
$pdo->exec('SET CHARACTER SET utf8mb4');
|
|
$sth = $pdo->prepare('SELECT fd_id FROM ' . $tablename . ' WHERE ' . $form_column_name . ' = ? ');
|
|
$sth->bindValue(1, $form_no);
|
|
$sth->execute();
|
|
$result = $sth->fetch();
|
|
return $result['fd_id'];
|
|
}
|
|
}
|
|
|
|
|
|
$bdf = new Bpm_Download_files;
|
|
// 映射的 table name
|
|
$tablename = "ekp_test";
|
|
// 映射的 表單表單編號欄位名稱
|
|
$form_column_name = "fd_shen1";
|
|
// 映射的 表單編號
|
|
$form_no = "20231221001";
|
|
$bdf->downloadBPMFilesByFormNo($tablename, $form_column_name, $form_no);
|
|
|