고수님들 부탁 합니다.(멀티업로드) > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

고수님들 부탁 합니다.(멀티업로드) 정보

고수님들 부탁 합니다.(멀티업로드)

본문

멀티업로드에 대한 질문입니다.
 
글쓰기할때 파일 업로드에서 파일을 하나씩 선택해야 하는데
 
한번에 여러파일을 선택하여 한번에 업로드 하게 하는 방법은 없는지요?
 
자바나 액티브엑스를 사용해야 하는지요?
 
드래그앤 드롭은 아니더라도 멀티셀렉트하여 한번에 업로드했으면 합니다.
 
좋은 방법 없을까요?
 
초초초 고수님들의 답변 부탁 드립니다.
  • 복사

댓글 전체

http://xenosi.de/uploader.php
이런걸 원하시는 겁니까??? 대부분이 유료일겁니다.
위 프로그램은 무료로 쓸수있지만 제약사항이 있습니다.
참고하시길 바랍니다.

- 무료 -
제작자의 메일주소가 보이고, 200MB 용량제한이 있습니다.
- 유료 -
파일시스템이 지원하는 최대크기까지 업로드 가능합니다.
배경이미지와 버튼이미지를 웹상에서 수정할 수 있습니다
건호랩님께서 만드신 플래시를 (구경가기)

    php 버전으로 바꾸고 나서 (이것도 보러가기)

        그누보드4에 적용해보았습니다.
   
            한번에 여러개의 화일이나 이미지를 업로드 하시는 분들에게 유용할겁니다.
샘플은 이곳에 적용되어있으니 글쓰시면서 느껴보시길....
장점:
업로드 갯수 무제한
한번에 여러개의 화일을 선택해서 업로드 가능 (주요 기능!!)
- 찾아보기를 계속 눌르지 않아 되는 편리함 ^^
용량 제한, 화일의 확장자 제한 가능
알디터와 같이 사용시 업로드한 화일을 바로 본문에 넣을수 있음 (은근히 테터 스럽네요..ㅋㅋ)
업로드된 화일들중 본문에 삽입된 화일은 글보기에서 목록에 나오지 않고 본문에 삽입되지 않은 화일들만 목록으로 나옴
글보기시 이미지 와 기타 화일들을 분리하여 목록으로 출력함.
설치법:
1. multiUpGnu4.zip 을 다운받으신후 풀어보시면 multiUp 이란 폴더가 있고 그안에 화일들이 있습니다.

2. config.php 를 여시고 주석을 참고하시면서 상단에 설정을 마치고 저장합니다.

    변수 이름들이 제로보드용으로 만든팁에서 수정하지 않았습니다. 신경쓰지 마시길.
    그리고 그누보드의 절대경로는 동봉된 abspath.php 를 그누보드폴더에 넣으시고 브라우져 상에서 실행하시면 나오는 경로입니다.

3. config.xml 을 여시고 역시 주석을 참고하시면서 설정을 마치고 저장합니다.

    이때 중요한건
    <allowDomain>http://계정</allowDomain> 와
    <uploadUrl>http://계정/그누보드/multiUp/upload.php</uploadUrl> 입니다.
    본인의 계정 주소로 잘 바꿔넣어주세요.

3-1. uploader.php 에서 현재 알디터와 함께 사용될때 필요한 [본문삽입] 버튼과 함수는 주석처리 되어있습니다.
     
    *알디터를 사용중이시라면(뽀뽀 쪽~ ㅋㅋ)... 주석제거 해주세요.
제거법:
    function toAlditor() {...} 함수를 감싸고 있는 /* 와 */ 제거
    [본문삽입] 링크를 감싸고 있는 <!-- 와 --> 제거

3-2. [본문삽입] 을 통해 업로드된 이미지들의 리사이즈를 위해~
3-1에서 주석제거하신 uploader.php 에 있는 toAlditor() 함수안에서..
html = '<img src="'+hrefUrl+url+'" border="0" />'; 를 찾아서 아래처럼 수정하십시오.
html = '<img src="'+hrefUrl+url+'" border="0" name="target_resize_image[]" /><br /><br />';

4. multiUp 폴더를 그누보드가 설치된 폴더 안에 업로드해 주세요.
5. config.xml 은 그누보드의 bbs 폴더에 넣어주세요.
6. 그누보드/data 폴더안에 multi 라는 폴더를 하나 만듭니다. 그리고 권한을 777 로 주십시오.
(multi 대신 다른 이름의 폴더를 만드셨다면
config.php 에서 $saveFolder =  "data/multi/"; 를
$saveFolder =  "data/새로만든폴더이름/"; 으로 바꾸시면 됩니다.)
7. 본팁은 게시판의 여분필드의 마지막 wr_10 을 이용합니다.
관리자 페이지에서 게시판의 여분필드중 10번째꺼의 이름을 uploaderUniq 라고 넣어주십시오.
(주의! 값이 아닌 이름입니다, 다시말해 왼쪽 칸에 넣으시라는...)
만약 wr_10 이 사용중이라면, 원하는걸로 바꾸신후 모든 화일과 수정법에 나오는 wr_10 을 모두 알맞게 수정하셔야 합니다.)
그누보드 스킨 화일수정:
1. 스킨의 write.skin.php
업로드플래시와 목록이 표시되길 원하시는 곳에 아래와 같이 넣어주세요
<? include "../multiUp/uploader.php";?>
그누보드 기본스킨을 기준으로한 샘플:

<? if ($is_file) { ?>
<tr>
    <td style='padding-left:20px;'>· 멀티업로드</td>
    <td><? include "../multiUp/uploader.php";?></td>
</tr>
<tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>
<? } ?>
이제 글쓰기 취소 버튼을 찾아서 아래처럼 바꿔주세요.

<a style="cursor:pointer;" onclick="cancelWrite();"><img id="btn_list" src="<?=$board_skin_path?>/img/btn_list.gif" border=0></a>

스킨마다 취소버튼이 다를겁니다. 이미지로 되어있거나 링크로 되어있거나...버튼일수도 있구요,
뭐로 되어있던간에 기존에 있던 링크나 onclick 을 "cancelWrite();" 로 바꿔주셔야 합니다.
2. 스킨의 view.skin.php
내용이 표시되는 <?=$view[content];?> 를 찾아서 그 왼쪽 또는 오른쪽 (저는 오른쪽에 넣었음)에 다음한줄을 넣어주세여.
<? include "../multiUp/uploadView.php"; ?>
3. 스킨의 write_update.skin.php 의 내용은 다음과 같습니다. 원래 있다면 추가..없다면 만들어서 스킨폴더에 올리세요.
<?PHP
include_once "../multiUp/config.php";
 
if($_POST['del_files']) {
 $delfiles = explode(",",$_POST['del_files']);
 for($i=0; $i<count($delfiles); $i++) {
  unlink($savePath.$_POST['uploaderUniq']."/".$delfiles[$i]);
 }
} $filecount = 0;
if ($rep=@opendir($savePath.$_POST['uploaderUniq'])) {
 while ($file = readdir($rep)) {
  if($file != '..' && $file !='.' && $file !=''){
  $filecount ++;
  }
 }
}
if($filecount == 0 && is_dir($savePath.$_POST['uploaderUniq'])) {
 rmdir($savePath.$_POST['uploaderUniq']);
}
if($filecount == 0) {
 sql_query(" update $write_table set wr_10 = '' where wr_id = '$wr_id' ");
}
if($filecount > 0 && $_POST['uploaderUniq']) {
  sql_query(" update $write_table set wr_10 = '$_POST[uploaderUniq]' where wr_id = '$wr_id' ");
}
?>
4. 그누보드/bbs 폴더의 delete.php
    // 게시글 삭제
    sql_query(" delete from $write_table where wr_parent = '$write[wr_id]' ");
를 찾아서 그 밑에 다음처럼 넣어주세요.
 $filefolder = $write['wr_10'];
 include "../multiUp/uploadDelete.php";
5. 그누보드/bbs 폴더의 delete_all.php
    // 게시글 삭제
    sql_query(" delete from $write_table where wr_parent = '$write[wr_id]' ");
를 찾아서 그 밑에 다음처럼 넣어주세요.
 $filefolder = $write['wr_10'];
 include "../multiUp/uploadDelete.php";
다 바꿔서 업로드 하셨으면~ 글쓰기에서 정상작동하는지 확인해주십시오 ^^
부가설명:
1. 업로드된 화일들은 그누보드/data/multi/ 안에 폴더가 생기면서 들어갑니다. 폴더이름은 unix timestamp 로 생성된 숫자들입니다.

2. 기존의 후업로드가 아닌 선업로드 방식이기 때문에 불가피하게 업로드만 되고 사용되지 않는 화일들이 생길겁니다. 그래서 준비했습니다. ^^

    짜잔~ multiUp 폴더에 잘보시면 cleanup.php 가 있습니다. 그 화일을 그누보드설치 폴더로 옮기신후에
    관리자로 로그인후 브라우져에서 계정/그누보드/multiUp/cleanup.php 라고 간간히 생각나실때 실행해주시면 쓰레기화일과 폴더들이 지워집니다.
3. 플래시의 디자인은 건호랩님이 제공하시는 화일을 받아보시면 fla 소스 화일이 있습니다. 그걸 수정하세요.
이상입니다.
 
참고1:
uploader.php 에 보시면 <select style="width:388px; margin-right: 4px;" name=file_list size=3 multiple="multiple"> 라고 있습니다. 보니까 다들 select 에 대한 스타일을 지정하지 않고 쓰시는분들이 많네요.. 그래서 글씨가 좀 크게 보입니다.
<select style="width:388px; margin-right: 4px; font-size:9pt;" name=file_list size=3 multiple="multiple">
처럼 해주시면 보기 좋습니다.

참고2:
접속자가 많은 홈이라면 동시에 같은 순간에 글을 쓰는 사람이 있을 가능성이 있으므로....
uploader.php 에서...
var cook = new Date().getTime();
를 찾아 아래처럼 바꿔주세요.
var cook = new Date().getTime() + (Math.round(9999*Math.random())+1);

[2009-09-21] 추가사항!
기존의 그누보드의 방식으로 포인트 차감도 되고...다운로드 권한도 관리되고...
클릭하면 열기가 아닌 저장으로 처리되게 하고 싶으시면...
아래 화일을 다운받으시고 uploadView.php 는 multiUp 폴더에... downloadMulti.php 화일은 그누보드/bbs 폴더에 넣어주세요.
 
(참고: 업로드후에 본문에 삽입하지 않으셔야 적용되고 삽입하시면 클릭시 그냥 무조건 오픈입니다.)


참고 링크

http://armsone.cdisk.co.kr/board/bbs/board.php?bo_table=etc&wr_id=4

출처 링크

http://www.alik.info/
흠 근데 원래 제로보드용이였는지
링크때문에 좀 고생했습니다.
그리고 되다안되다 그러는데 원인을 알수 없군요
그리고 한글이 안된다는점.....
© SIRSOFT
현재 페이지 제일 처음으로