G4 4.02.00용 파일정보 업데이터... > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

G4 4.02.00용 파일정보 업데이터... 정보

G4 4.02.00용 파일정보 업데이터...

첨부파일

file.php (962byte) 53회 다운로드 2005-07-13 16:51:07

본문

<?php
$g4_path = '..';
include_once("{$g4_path}/common.php");

$i = 0;
$sql = " select * from {$g4['board_file_table']}";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
$no = $row['bf_no'];
$board['bo_table'] = $row['bo_table'];
$file['path'] = "{$g4['path']}/data/file/{$row['bo_table']}";
$file['size'] = filesize("{$file['path']}/{$row['bf_file']}");
$file['datetime'] = date("Y-m-d H:i:s", @filemtime("{$g4['path']}/data/file/{$row['bo_table']}/{$row['bf_file']}"));
$file['imgsize'] = @getimagesize("{$file['path']}/{$row['bf_file']}");
$file_sql = " update `{$g4['board_file_table']}` set `bf_filesize` = '{$file['size']}', `bf_datetime` = '{$file['datetime']}', `bf_width` = '{$file['imgsize'][0]}', `bf_height` = '{$file['imgsize'][1]}', `bf_type` = '{$file['imgsize'][2]}' where `bo_table` = '{$row['bo_table']}' and `wr_id` = '{$row['wr_id']}' and `bf_no` = '{$row['bf_no']}' ";
sql_query($file_sql);
}
?>

$g4_path를 적당히 수정해서 사용하시길...
추천
0

댓글 13개

제가 설명이 좀 부족했던 것 같네요...
4.02.00 이전버전에서 4.02.00버전으로 업그레이드를 하게되면
파일 사이즈 등이 DB에 새로 생기는데 이전에 업로드된 파일들은 0으로 되어있습니다.
그 값을 찾아서 넣어주는 프로그램입니다.
이전버전에서 업그레이드 하지 않았다면 필요없습니다.
'관리자'님! 궁금합니다.
정말 정말 궁금해서 질문드립니다.
표현방법이 무지해 보일지라도 미리 양해의 말씀을 구합니다.

쿼리문을 날렸을때, 'g6man'님처럼 file table에서 추출하는 것과,
'관리자'님께서 조건문을 지정하신 방법(where절 이하...)과 차이점이 뭘까요?

> 업데이트할 파일이 너무 많아 중간에 중단되더군요.
sir.co.kr이 전체적으로 업그레이드(적용시각은 2005. 07. 13. 16:00 가량) 되었을 경우와 비교해,
과연 얼마나 많은 부하와 추가되는 게시물이 있었을까요?

어제(2005.07.13) 등록된 게시물이라고 해 봐야 겨우 하단에 기재한 내용과 동일합니다.
물론, 이 중에서 영카트를 비롯해, 전체검색 및 그룹접근을 사용한 공간은,
제외 되었다는 것을 감안해야 하며, 또한 코멘트인 경우도 제외시켜야 한다는 것입니다.
아... 또 있군요.
기존에 작성된 게시물이라 할지라도, 2005-07-13 14:00를 기준으로,
직 전·후인가의 여부도 고려해야 겠군요.

===============================================================
검색된 게시판 리스트 (15개의 게시판, 176개의 게시글, 1/18 페이지)

[관련링크] http://sir.co.kr/bbs/search.php?sfl=wr_datetime&sop=and&gr_id=&stx=2005-07-13
===============================================================

물론... 이 게시물들이 전부 해당되는 것은 아니며,
파일이 첨부된 게시물인 경우, 16시(어제 오후 4시)를 전후로 포함하거나 제외시켜야 한다는 점입니다.

> 원본코드 : $sql = " select * from {$g4['board_file_table']}";
> 수정코드 : $sql = " select * from {$g4['board_file_table']} where bf_datetime = '0000-00-00 00:00:00' ";

정말 where 조건절 하나 때문에,
'업데이트할 파일이 너무 많아 중간에 중단되더군요.'
~ 라는 상황이 발생되는 것인가요?

정말, 정말로 이해가 가지 않습니다.
아... 궁금해~
g3man 님께서 올려주신 소스는 파일 테이블의 내용을 한행씩 읽고 파일을 읽어서 파일 내용을 업데이트 하는 방식으로 이것은 이미 아시죠?

저희도 이 파일을 사용하여 그누보드 4.02.00 이전 버전의 파일 정보를 업데이트 하려고 실행하였더니 파일이 너무 많아서 중간에 실행이 중지하였습니다.

제가 수정한 코드는 이미 업데이트된 자료는 읽어오지 않는 코드입니다.

$sql = " select * from {$g4['board_file_table']} where bf_datetime = '0000-00-00 00:00:00' ";

좀 더 쉽게 말씀드리자면 파일 정보(이미지 사이즈, 타입 등)가 있는 자료는 이미 시간이 들어가 있으므로 시간이 없는 자료만 SELECT 하는것입니다.
앗... 그렇군요.

코멘트 작성하고 나서 찬찬히 살펴보다가... 관리자님의 답변 코멘트를 확인하니...
그렇군요. 맞습니다.

파일 테이블에는 이미 기존 파일에 대해,
작성된 날짜를 기억하고 있겠군요.
다만, 어제의 업데이트로 인해 그 작성(저장)된 날짜를 제대로 링크(연결)시키지 못했다는
부분은 간과 했습니다.

아하~*
오늘도 궁금했던 내용과 답을 동시에 얻어 갑니다.
감사합니다^^;
업데이트할 파일이 너무 많아 중간에 중단되더군요.


$sql = " select * from {$g4['board_file_table']}";



$sql = " select * from {$g4['board_file_table']} where bf_datetime = '0000-00-00 00:00:00' ";

와 같이 수정하신 후 다시 실행하시면 됩니다.


g4man 님 감사합니다.
소스코드 최상단에 $g4_path="..";  가 기재되어 있는 것으로 미루어,
'g6man'님께서도 정리를 깔끔하게 하는 스타일이신듯 합니다.

소스코드를 그대로 복사하셔도 되고, 파일을 다운로드 받으셔도 됩니다.

특별히 손봐 줄 부분은 없습니다.
단, $g4_path="..";
=> 상대경로를 지정하는 부분에서 확인할 수 있듯이,
=> g4 설치경로가 아닌, 한단계 하단에 임의의 경로를 만들어 놓고 저장해서 사용하시면 됩니다.

이 소스파일의 진정한 깔끔함을 느끼고 싶으시다면,
g4 최신버전으로 업그레이드 하신 후,
new.php(최근게시물 --- 이 부분은 해당사항과 멀지만...),
각 게시판 view화면에서 파일이 첨부된 게시물의 출력형태를 확인하신 후 실행하시기 바랍니다.
얼마나 깔끔하고 유용한 파일인지를...

'7쟁이'님께 드리는 말씀과 함께,
다시 한번 'g6man'님께 감사의 말씀을 전합니다.
전체 133 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT