- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경 - DB 연결 하드코딩 → .env 기반으로 변경 - MySQL strict mode DATE 오류 수정
182 lines
7.8 KiB
PHP
182 lines
7.8 KiB
PHP
<?php
|
|
// 첨부파일 있는 것 불러오기
|
|
$savefilename_arr=array();
|
|
$realname_arr=array();
|
|
$item = 'attached';
|
|
$drivetablename = '인정검사사진';
|
|
|
|
$sql = "SELECT * FROM {$DB}.picuploads WHERE tablename=? AND item = ? AND parentnum = ? AND page = ? ";
|
|
try {
|
|
$stmh = $pdo->prepare($sql);
|
|
$stmh->execute([$drivetablename, $item, $num, $page]);
|
|
while ($row = $stmh->fetch(PDO::FETCH_ASSOC)) {
|
|
$picname = $row["picname"];
|
|
$realname = $row["realname"];
|
|
$realname_arr[] = $realname; // realname 배열에 추가
|
|
|
|
if (preg_match('/^[a-zA-Z0-9_-]{25,}$/', $picname)) {
|
|
// Google Drive 파일 ID로 처리
|
|
$fileId = $picname;
|
|
|
|
try {
|
|
// Google Drive 파일 정보 가져오기
|
|
$file = $service->files->get($fileId, ['fields' => 'webViewLink, thumbnailLink']);
|
|
$thumbnailUrl = $file->thumbnailLink ?? "https://drive.google.com/uc?id=$fileId";
|
|
$webViewLink = $file->webViewLink;
|
|
$savefilename_arr[] = [
|
|
'thumbnail' => $thumbnailUrl,
|
|
'link' => $webViewLink,
|
|
'fileId' => $fileId,
|
|
'realname' => $realname // realname 포함
|
|
];
|
|
} catch (Exception $e) {
|
|
error_log("Google Drive 파일 정보 가져오기 실패: " . $e->getMessage());
|
|
$savefilename_arr[] = [
|
|
'thumbnail' => "https://drive.google.com/uc?id=$fileId",
|
|
'link' => null,
|
|
'fileId' => $fileId,
|
|
'realname' => $realname // realname 포함
|
|
];
|
|
}
|
|
} else {
|
|
// Google Drive에서 파일 이름으로 검색
|
|
try {
|
|
$query = sprintf("name='%s' and trashed=false", addslashes($picname)); // 파일 이름으로 검색
|
|
$response = $service->files->listFiles([
|
|
'q' => $query,
|
|
'fields' => 'files(id, webViewLink, thumbnailLink)',
|
|
'pageSize' => 1
|
|
]);
|
|
|
|
if (count($response->files) > 0) {
|
|
$file = $response->files[0];
|
|
$fileId = $file->id; // 검색된 파일의 ID
|
|
$thumbnailUrl = $file->thumbnailLink ?? "https://drive.google.com/uc?id=$fileId";
|
|
$webViewLink = $file->webViewLink;
|
|
$savefilename_arr[] = [
|
|
'thumbnail' => $thumbnailUrl,
|
|
'link' => $webViewLink,
|
|
'fileId' => $fileId,
|
|
'realname' => $realname // realname 포함
|
|
];
|
|
|
|
// 데이터베이스 업데이트: 검색된 파일 ID 저장
|
|
$updateSql = "UPDATE {$DB}.picuploads SET picname = ? WHERE item = ? AND parentnum = ? AND picname = ? AND page = ? ";
|
|
$updateStmh = $pdo->prepare($updateSql);
|
|
$updateStmh->execute([$fileId, $item, $num, $picname, $page]);
|
|
} else {
|
|
error_log("Google Drive에서 파일을 찾을 수 없습니다: " . $picname);
|
|
$savefilename_arr[] = [
|
|
'thumbnail' => null,
|
|
'link' => null,
|
|
'fileId' => null,
|
|
'realname' => $realname // realname 포함
|
|
];
|
|
}
|
|
} catch (Exception $e) {
|
|
error_log("Google Drive 파일 검색 실패: " . $e->getMessage());
|
|
$savefilename_arr[] = [
|
|
'thumbnail' => null,
|
|
'link' => null,
|
|
'fileId' => null,
|
|
'realname' => $realname // realname 포함
|
|
];
|
|
}
|
|
}
|
|
}
|
|
} catch (PDOException $Exception) {
|
|
print "오류: " . $Exception->getMessage();
|
|
}
|
|
|
|
// print_r($savefilename_arr);
|
|
|
|
// 첨부이미지 불러오기
|
|
$saveimagename_arr=array();
|
|
$realimagename_arr=array();
|
|
$item = 'image';
|
|
|
|
$sql = "SELECT * FROM {$DB}.picuploads WHERE tablename=? AND item = ? AND parentnum = ? AND page = ? ";
|
|
try {
|
|
$stmh = $pdo->prepare($sql);
|
|
$stmh->execute([$tablename, $item, $num, $page]);
|
|
while ($row = $stmh->fetch(PDO::FETCH_ASSOC)) {
|
|
$picname = $row["picname"];
|
|
$realname = $row["realname"];
|
|
$realimagename_arr[] = $realname; // realname 배열에 추가
|
|
|
|
if (preg_match('/^[a-zA-Z0-9_-]{25,}$/', $picname)) {
|
|
// Google Drive 파일 ID로 처리
|
|
$fileId = $picname;
|
|
|
|
try {
|
|
// Google Drive 파일 정보 가져오기
|
|
$file = $service->files->get($fileId, ['fields' => 'webViewLink, thumbnailLink']);
|
|
$thumbnailUrl = $file->thumbnailLink ?? "https://drive.google.com/uc?id=$fileId";
|
|
$webViewLink = $file->webViewLink;
|
|
$saveimagename_arr[] = [
|
|
'thumbnail' => $thumbnailUrl,
|
|
'link' => $webViewLink,
|
|
'fileId' => $fileId,
|
|
'realname' => $realname // realname 포함
|
|
];
|
|
} catch (Exception $e) {
|
|
error_log("Google Drive 파일 정보 가져오기 실패: " . $e->getMessage());
|
|
$saveimagename_arr[] = [
|
|
'thumbnail' => "https://drive.google.com/uc?id=$fileId",
|
|
'link' => null,
|
|
'fileId' => $fileId,
|
|
'realname' => $realname // realname 포함
|
|
];
|
|
}
|
|
} else {
|
|
// Google Drive에서 파일 이름으로 검색
|
|
try {
|
|
$query = sprintf("name='%s' and trashed=false", addslashes($picname)); // 파일 이름으로 검색
|
|
$response = $service->files->listFiles([
|
|
'q' => $query,
|
|
'fields' => 'files(id, webViewLink, thumbnailLink)',
|
|
'pageSize' => 1
|
|
]);
|
|
|
|
if (count($response->files) > 0) {
|
|
$file = $response->files[0];
|
|
$fileId = $file->id; // 검색된 파일의 ID
|
|
$thumbnailUrl = $file->thumbnailLink ?? "https://drive.google.com/uc?id=$fileId";
|
|
$webViewLink = $file->webViewLink;
|
|
$saveimagename_arr[] = [
|
|
'thumbnail' => $thumbnailUrl,
|
|
'link' => $webViewLink,
|
|
'fileId' => $fileId,
|
|
'realname' => $realname // realname 포함
|
|
];
|
|
|
|
// 데이터베이스 업데이트: 검색된 파일 ID 저장
|
|
$updateSql = "UPDATE {$DB}.picuploads SET picname = ? WHERE item = ? AND parentnum = ? AND picname = ? AND page = ? ";
|
|
$updateStmh = $pdo->prepare($updateSql);
|
|
$updateStmh->execute([$fileId, $item, $num, $picname]);
|
|
} else {
|
|
error_log("Google Drive에서 파일을 찾을 수 없습니다: " . $picname);
|
|
$saveimagename_arr[] = [
|
|
'thumbnail' => null,
|
|
'link' => null,
|
|
'fileId' => null,
|
|
'realname' => $realname // realname 포함
|
|
];
|
|
}
|
|
} catch (Exception $e) {
|
|
error_log("Google Drive 파일 검색 실패: " . $e->getMessage());
|
|
$saveimagename_arr[] = [
|
|
'thumbnail' => null,
|
|
'link' => null,
|
|
'fileId' => null,
|
|
'realname' => $realname // realname 포함
|
|
];
|
|
}
|
|
}
|
|
}
|
|
} catch (PDOException $Exception) {
|
|
print "오류: " . $Exception->getMessage();
|
|
}
|
|
|
|
// print_r($saveimagename_arr);
|
|
?>
|