지업로더 필수 패치 :: 파일정렬 정보
지업로더 필수 패치 :: 파일정렬관련링크
본문
이 팁은 김처로님의 팁&테크를 기반으로 만들어졌습니다.
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=13136
서론 ..
- 먼저 김처로님의 지에디터와 지업로더 같이 쓰기 팁을 먼저 수정해주세요.
- 먼저 김처로님의 지에디터와 지업로더 같이 쓰기 팁을 먼저 수정해주세요.
photo_delete_file.php 수정하기
- line 29에 보시면 @unlink($file); 코드가 있습니다. 이 코드 부터 맨 밑의 echo $msg; 전까지 코드를 모두 삭제하신 후, 다음 소스를 붙여주세요. (@unlink($file); 아래, echo $msg; 위)
@unlink($file);
// 여기서부터 수정본 코드
$delete_num = $bf_no;
$delete_sql = "delete from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$bf_no'";
sql_query($delete_sql);
$i = $delete_num;
$sql = " select * from {$g4['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no > '{$i}'";
$qry = sql_query($sql);
while($row = sql_fetch_array($qry)) {
if(!$row[bf_file]) {
break;
} else {
sql_query ("update $g4[board_file_table] set bf_no = '$i' where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$row[bf_no]'");
$i++;
}
}
// 여기가 끝
echo $msg;
}
?>
- line 29에 보시면 @unlink($file); 코드가 있습니다. 이 코드 부터 맨 밑의 echo $msg; 전까지 코드를 모두 삭제하신 후, 다음 소스를 붙여주세요. (@unlink($file); 아래, echo $msg; 위)
@unlink($file);
// 여기서부터 수정본 코드
$delete_num = $bf_no;
$delete_sql = "delete from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$bf_no'";
sql_query($delete_sql);
$i = $delete_num;
$sql = " select * from {$g4['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no > '{$i}'";
$qry = sql_query($sql);
while($row = sql_fetch_array($qry)) {
if(!$row[bf_file]) {
break;
} else {
sql_query ("update $g4[board_file_table] set bf_no = '$i' where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$row[bf_no]'");
$i++;
}
}
// 여기가 끝
echo $msg;
}
?>
guploader.js 수정하기
- this.delete_file_complete = function() 을 찾아보시면 if (fl.options.length) 코드 위에다가 아래코드를 붙입니다.
// 수정본 코드 추가
this.after_upload();
- this.delete_file_complete = function() 을 찾아보시면 if (fl.options.length) 코드 위에다가 아래코드를 붙입니다.
// 수정본 코드 추가
this.after_upload();
개요를 말씀드리자면, 김처로님의 글중 "그리고, 파일을 삭제하고 다시 올릴 경우에는 파일 테이블에서 빈 공간이 생긴다라는 것 정도 될것 같네요" 라고 말씀하셨습니다.
실제 원본 코드를 보면 파일삭제를 할 시, 그 $bf_no 의 행을 삭제하는게 아니라 모든 값을 '' 즉, 빈 값으로 수정하게 됩니다. 그리고 마지막 $bf_no의 행에서만 제한적으로 삭제를 합니다.
그리고 이 빈 값이 그대로 유지되면 만일 0번 파일에서 섬네일을 생성시, 파일값이 없으므로 수정이든 어떻게 하든 절대 생성이 되지않아, 고민을 한 끝에 한번 수정해보자 하였습니다.
저 같은 경우 (곧 배포될) 저의 섬네일 생성기 + unsharpenmask 를 이용하는데 이 때 DB로 불러와서 섬네일을 생성해야하는데, 이게 안되가지고 어떻게 하면 정렬을 할 수 있을까 고민을 하였습니다.
그래서 한번 시뮬레이터를 상상해보았지요.
만일.... 아래처럼 "간단"하게 설명하자면
bf_no 파일
0 1.jpg
1 2.jpg
2 3.jpg
3 4.jpg
이렇게 되어있는데 만일 2.jpg를 삭제한다면 원본 코드상에서는 bf_no의 1의 파일값이 텅 비게되있습니다. 그래서 텅 비게 하는 소스를 행 삭제를 실행하고 그 전엔 bf_no의 숫자를 외웁니다.
그러면 DB로 삭제된 bf_no값보다 이상인 숫자들만 sql_fetch_array로 그 이상 번호들을 bf_no의 숫자로 맞춰줍니다. 만일 중간에 bf_no가 비더라도, 딱딱 맞출수 있도록 설정해놓으며, 그러면 아래처럼 바뀌게 될것입니다 (bf_no 1 행 삭제)
bf_no 파일
0 1.jpg
1 3.jpg
2 4.jpg
여기서 DB상으로는 photo_delete_file.jpg 로 구현할 수 있게 됩니다.
그러나 정작 지업로더의 파일목록에서 각 파일 값의 bf_no를 수정해주지 않으면 결국
원본코드나 마찬가지일겁니다. 이 때 파일 업로드 할 때 다시 목록을 갱신해주는 function을 "삭제 완료(delete_file_complete)" 펑션 안에 다시 목록을 갱신해주면 제대로 나타나게 됩니다. (참고로 다시 목록을 갱신해주는 function은 DB에서 값을 넘겨받아 넘깁니다)
설명은 아주 복잡하게 해버렸네요...
만일 이 설명을 이해하시지 못하시겠다면 그저 소스를 수정하시고 쓰세요
지업로더도 일반 파일 첨부와 같은 기능을 합니다 ^^
이 패치로 어떤 그누보드 유저님이 지업로더를 플래시 10.0 버젼으로 소스를 업그레이드 시켜주었으면 하는 바램이 있네요.. 곱슬최씨님이 Flex 소스를 예전에 공개해주셨더군요 ^^;
그럼 모두 좋은 그누보드 홈페이지 만들기를 바라겠습니다 ^ㅡ^
실제 원본 코드를 보면 파일삭제를 할 시, 그 $bf_no 의 행을 삭제하는게 아니라 모든 값을 '' 즉, 빈 값으로 수정하게 됩니다. 그리고 마지막 $bf_no의 행에서만 제한적으로 삭제를 합니다.
그리고 이 빈 값이 그대로 유지되면 만일 0번 파일에서 섬네일을 생성시, 파일값이 없으므로 수정이든 어떻게 하든 절대 생성이 되지않아, 고민을 한 끝에 한번 수정해보자 하였습니다.
저 같은 경우 (곧 배포될) 저의 섬네일 생성기 + unsharpenmask 를 이용하는데 이 때 DB로 불러와서 섬네일을 생성해야하는데, 이게 안되가지고 어떻게 하면 정렬을 할 수 있을까 고민을 하였습니다.
그래서 한번 시뮬레이터를 상상해보았지요.
만일.... 아래처럼 "간단"하게 설명하자면
bf_no 파일
0 1.jpg
1 2.jpg
2 3.jpg
3 4.jpg
이렇게 되어있는데 만일 2.jpg를 삭제한다면 원본 코드상에서는 bf_no의 1의 파일값이 텅 비게되있습니다. 그래서 텅 비게 하는 소스를 행 삭제를 실행하고 그 전엔 bf_no의 숫자를 외웁니다.
그러면 DB로 삭제된 bf_no값보다 이상인 숫자들만 sql_fetch_array로 그 이상 번호들을 bf_no의 숫자로 맞춰줍니다. 만일 중간에 bf_no가 비더라도, 딱딱 맞출수 있도록 설정해놓으며, 그러면 아래처럼 바뀌게 될것입니다 (bf_no 1 행 삭제)
bf_no 파일
0 1.jpg
1 3.jpg
2 4.jpg
여기서 DB상으로는 photo_delete_file.jpg 로 구현할 수 있게 됩니다.
그러나 정작 지업로더의 파일목록에서 각 파일 값의 bf_no를 수정해주지 않으면 결국
원본코드나 마찬가지일겁니다. 이 때 파일 업로드 할 때 다시 목록을 갱신해주는 function을 "삭제 완료(delete_file_complete)" 펑션 안에 다시 목록을 갱신해주면 제대로 나타나게 됩니다. (참고로 다시 목록을 갱신해주는 function은 DB에서 값을 넘겨받아 넘깁니다)
설명은 아주 복잡하게 해버렸네요...
만일 이 설명을 이해하시지 못하시겠다면 그저 소스를 수정하시고 쓰세요
지업로더도 일반 파일 첨부와 같은 기능을 합니다 ^^
이 패치로 어떤 그누보드 유저님이 지업로더를 플래시 10.0 버젼으로 소스를 업그레이드 시켜주었으면 하는 바램이 있네요.. 곱슬최씨님이 Flex 소스를 예전에 공개해주셨더군요 ^^;
그럼 모두 좋은 그누보드 홈페이지 만들기를 바라겠습니다 ^ㅡ^
추천
1
1
댓글 4개
좋은 팁이네요.
플래시 플레이어 10 문제가 빨리 해결되었으면 좋겠습니다.
저희 사이트 회원들도 업로드가 안된다고 아우성... -_-
지업로더 제작자 분께서 fla 소스만 공개해주시면 어찌어찌 파고 들어볼 수 있겠는데 flex 소스는 더더욱 모르겠고...
다음주 부터 방학인데, 그누 잡고 늘어져볼까 합니다. 이 문제도 해결할 수 있을지 모르겠네요.
http://swfupload.org 이쪽에 공개 소스가 있는데, 이걸로 많이 만드시는 것 같더군요.
플래시 플레이어 10 문제가 빨리 해결되었으면 좋겠습니다.
저희 사이트 회원들도 업로드가 안된다고 아우성... -_-
지업로더 제작자 분께서 fla 소스만 공개해주시면 어찌어찌 파고 들어볼 수 있겠는데 flex 소스는 더더욱 모르겠고...
다음주 부터 방학인데, 그누 잡고 늘어져볼까 합니다. 이 문제도 해결할 수 있을지 모르겠네요.
http://swfupload.org 이쪽에 공개 소스가 있는데, 이걸로 많이 만드시는 것 같더군요.
제로보드 XE도 그렇게 했던데
보니까 XE는 뭔가 플래시 오브젝트를 파일첨부 버튼 위에 만들어서 했더라구요..
근데 플래시 소스다보니 저는 전혀 이해가 안되는... ㄱ=;
꼭 개선시켜주세요 김처로님 ^ㅡ^
보니까 XE는 뭔가 플래시 오브젝트를 파일첨부 버튼 위에 만들어서 했더라구요..
근데 플래시 소스다보니 저는 전혀 이해가 안되는... ㄱ=;
꼭 개선시켜주세요 김처로님 ^ㅡ^
저희도 플래쉬 10때문에-_- 업로드가 안되고 있네요 얼렁 패치가 나와야 할텐데-_-
저는 플9로 다운그레이드해서 사용중입니다 ㅠ