arrangefile_2.zip
uploadmulti.zip


포털(네이버 까페) 스타일의 무제한 멀티 업로드를 제로보드에 적용하는 방법입니다.

샘플은... 이곳에 적용되어있으니 글쓰기하시면 보실수 있습니다.


설치도 쉽고 설정도 쉽고, 강추하는 팁입니다.


설치법

1. 제로보드의 write_ok.php 에서

// MySQL 닫기 를 찾아 그 윗줄에 아래 소스를 넣어줍니다.

if ($setup[use_pds] ==1 ) {
$upload_dir = "./data/".$id."/";
if (!is_dir("$upload_dir")) {
@mkdir($upload_dir,0777);
}
include "upload_write_ok.php";
}


2. 제로보드의 delete_ok.php 에서

// 파일삭제
@z_unlink("./".$s_data[file_name1]);
@z_unlink("./".$s_data[file_name2]);

위와 같은 부분을 찾아 그 아랫줄에 아래 소스를 넣어줍니다.

if ($setup[use_pds] ==1 ) {
$upload_dir = "./data/".$id."/";
if (is_dir("$upload_dir")) {
include "upload_delete_ok.php";
}
}


3. 제로보드의 list_all.php 에서


// 파일삭제
@z_unlink("./".$s_data[file_name1]);
@z_unlink("./".$s_data[file_name2]);

위와 같은 부분을 찾아 그 아랫줄에 아래 소스를 넣어줍니다.



$upload_dir = "./data/".$id."/";
if (is_dir("$upload_dir")) {
$no = $selected[$i];
include "upload_delete_ok.php";
}


그리고나서...조금 밑에..


// Comment 정리

를 찾아서 그 윗줄에 아래 내용은 넣어줍니다.


//멀티 업로드로 업로드된화일 복사
$upload_dir = "./data/".$id."/";
if (is_dir("$upload_dir")) {
$file_list=array();
$rep=@opendir($upload_dir);
while ($file = readdir($rep)) {
if($file != '..' && $file !='.' && $file !=''){
$file_temp = explode("^",$file);
if (($file_temp[0] == round(filesize($upload_dir.$file)/1024+0.5)) && $file_temp[1] == $data[no])
{
$file_list[]=$file;
}
}
}
if (sizeof($file_list) > 0)
{
$new_upload_dir = "./data/".$board_name."/";
if (!is_dir("$new_upload_dir")) {
@mkdir($new_upload_dir,0777);
}
for($i=0;$i<count($file_list);$i++)
{
$imsi_file=explode("^",$file_list[$i]);
$new_file = $imsi_file[0]."^".$no."^".$imsi_file[2]."^".$imsi_file[3];
copy($upload_dir.$file_list[$i],$new_upload_dir.$new_file);
}
}
}
//


4. 스킨의 view.php 에서

업로드 된 이미지나 화일들이 표시되길 원하는 곳에 다음과 같이 한줄 넣어줍니다.
(저 같은 경우엔 $memo 가 나오는 줄 아랫줄에 넣어주었습니다. 물론 html 구조에 유의하며 <td> 와 </td> 사이에 넣었죠. .^^)

<?include "upload_skin_view.php";?>


5. 스킨의 write.php 에서


현재의 스킨구조에 잘 어울리게 업로드필드가 있는 한줄을 복제하여 추가합니다.

샘플:
<tr>
<td>파일 첨부 1</td>
<td><input type=file name=file1 ...생략....></td>
</tr>

그리고... 복제한 한줄에 왼쪽의 td 에는 원하시는 타이틀 (저는 '파일 첨부') 라고 쓰시고
오른쪽의 td 에 <?include "upload_skin_write.php";?> 라고 input 태그 대신에 넣어주시면 됩니다.

샘플:
<tr>
<td valign=middle width="70" align="right" style="padding-right:10;" class=8pt>
파일 첨부
</td>
<td>
<?include "upload_skin_write.php";?>
</td>
</tr>

기존의 스킨 구조가 사용자 마다 다르기때문에 딱! 이거다 라고 말씀드릴순 없지만, 설명을 잘 이해하시고 적절한 위치에 삽입하여 주십시오.

결론은.. input 태그대신 <?include "upload_skin_write.php";?> 를 넣으시면 된다는겁니다.


그리고 글쓰기창 하단에 글작성버튼옆에 나오는 취소 (또는 목록으로) 버튼 의 링크를 아래처럼 바꾸어줍니다.

<a href="upload_cancel.php?id=<?=$id?>" onfocus=this.blur();>이미지 또는 텍스트</a>

(아마 원래는 history.back(); 이나 window.history.go(-1); 로 되어있을겁니다.)


6. 이제 제가 업로드한 화일을 다운받아서 압축을 푸십니다.

7. upload_conf.php 화일을 여셔서 상단에 설정할수 있는 부분을 알맞게 설정하여 주십시오.

8. 설정후 저장하시고 image 폴더를 포함해서 모두 제로보드 폴더에 넣어줍니다.


추신: 화일들의 이름을 보시면 아시겠지만, upload_skin_write.php 에서는 글쓰기 보여지는 부분을, upload_skin_view.php 에서는 글내용 보기에서 표시되는 부분이 들어있으니... 겉모습을 수정하고 싶으시면 그 화일들을 적절히 수정하여 주세요 ^^.



추가: 관리자 페이지에서 첨부화일 정리를 눌러서 쓰레기 화일 정리를 누르면... 올라간 화일들이 다 사라집니다... 첨부된 arrangefile2.zip 을 받아서 admin 폴더에 압축 풀어넣어주세요.


이상입니다 ^^
by Anna 안나 2008. 5. 23. 18:55