다중파일 업로드 다운로드 문제인데
업로드는 여차여차 해서 서버와 DB내에 저장이 됩니다.
저장시엔 저장한날짜^파일명.확장자 이런식으로 저장이되구요.
다중파일 다운로드 시 링크를 어떤식으로 걸고
다운로드 헤더쪽에 어떤식으로 조건문을 걸어야 할지 감이 잘 안와서요..
일단 아무렇게나 걸긴 했는데 저게 아닌듯 해요. 파
일이 여러개 있으면 계속 하나만 다운받으니까요 ㅠㅠ
아님 링크를 걸때 onclick을 써서 스크립트를 만들어야 하는지..ㅠㅠ
혹시 보시고 시간 남으시면 어딜 수정해야 할지
알려주시면 정말 감사하겠습니다.
view.php
------------------------------------------------------------------------------
<td align='center' bgcolor='ececec' style="width:120;">붙임파일</td>
<td name='1'>
<?
if($view_row[filename1]){
$downloadfile1 = explode("_",$view_row[filename1]);
echo " <a href='down.php?num=$view_row[num]&downloadfile=$view_row[filename1]'> $downloadfile1[1]</a>";
echo "";
}
?>
<?
if($view_row[filename2]){
$downloadfile2 = explode("_",$view_row[filename2]);
echo " <a href='down.php?num=$view_row[num]&filename1=$view_row[filename2]'> $downloadfile2[1]</a>";
echo "";
}
?>
<?
if($view_row[filename3]){
$downloadfile3 = explode("_",$view_row[filename3]);
echo " <a href='down.php?num=$view_row[num]&filename1=$view_row[filename3]'> $downloadfile3[1]</a>";
echo "";
}
?>
<?
if($view_row[filename4]){
$downloadfile4 = explode("_",$view_row[filename4]);
echo " <a href='down.php?num=$view_row[num]&filename1=$view_row[filename4]'> $downloadfile4[1]</a>";
echo "";
}
?>
<?
if($view_row[filename5]){
$downloadfile5 = explode("_",$view_row[filename5]);
echo " <a href='down.php?num=$view_row[num]&filename1=$view_row[filename5]'> $downloadfile5[1]</a>";
echo "";
}
?>
</td>
</tr>
-------------------------------------------------------------------------------------------
down.php
-------------------------------------------------------------------------------------------
include "./db_connect.inc";
$sel_str = "SELECT * FROM board WHERE num=$num";
$sel_qry = mysql_query($sel_str) or die(mysql_error());
$row = mysql_fetch_array($sel_qry);
$path1 = "./upload/".$row['filename1'];
$path2 = "./upload/".$row['filename2'];
$path3 = "./upload/".$row['filename3'];
$path4 = "./upload/".$row['filename4'];
$path5 = "./upload/".$row['filename5'];
if($row['filename1']) {
$path = $path1;
$rname=explode("_",$row['filename1']);
$name = $rname[1];
}
else if($row['filename2']) {
$path = $path2;
$rname=explode("_",$row['filename2']);
$name = $rname[1];
}
else if($row['filename3']) {
$path = $path2;
$rname=explode("_",$row['filename2']);
$name = $rname[1];
}
else if($row['filename4']) {
$path = $path2;
$rname=explode("_",$row['filename2']);
$name = $rname[1];
}
else if($row['filename5']) {
$path = $path2;
$rname=explode("_",$row['filename2']);
$name = $rname[1];
}
header("Content-type: application/octetstream");
header("Content-disposition: attachment; filename=\"$name\"");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-Length: " . filesize($path));
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
ob_clean();
readfile("$path");
exit;
?>
답변 4개 / 댓글 2개
두번째 방법으로 링크를 거는건 중개해주는 a.php 파일에 링크를 거는 거구요.
a.php 파일에 $bo_table, $wr_id 값만 던져주고
a.php 파일에서는 해당 글에 첨부된 파일 목록을 읽어와서
파일갯수만큼 download.php 파일 새창으로 오픈하는 거죠.
근데 이렇게 하면 자동 팝업이기 때문에 팝업차단이 걸려있으면 못쓸수도 있을거 같구요.
iframe 이나 기타 여러가지 트릭등을 동반해야 할것 같아요.
압축해서 한번에 전송하도록 하는 방법을 권장해드립니다. ㅋ
답변을 작성하려면 로그인이 필요합니다.
이런식으로 주소 앞에 val값 추가해서
받는쪽에 $val=$_REQUEST['val'] 선언하고
if문에 $val=='1' $val=='2'... 이런식으로 추가하니 되네요..
어이없이 해결했습니다..무튼 감사