안녕하세요!! 다운로드 기능을 더 추가하려고 하는데요.. 막히는 곳이 있어 질문을 드립니다
본문
안녕하세요! 제가 다운로드 기능을 더 추가하려고 하는데 어려움이 있어서 이렇게 질문을 하게 되었습니다
상황은 다른곳에서 이미 만들어준 download.php가 있는데 이것을 활용해서 다운로드 기능을 활용할수있습니다 하지만 요구사항이 다운로드 버튼이 하나만 있는것이 아니라 두개를 만들어서 각각 다른 파일을 올리고 싶다는것입니다 그래서 현재 있는 버튼을 하나 더 만들었는데요 하지만 이제 같은 파일만 올라가지 관리자 페이지에서 다른 파일을 올리더라도 변경이 되지 않더라고요.. $item['it_1']만 변경해주면 되는건줄 알고 쉽게 생각했는데 꽤 막혀서 어떻게 해야할지 모르겠네요..
download.php
<?
include_once('./_common.php');
$iid = $_GET["iid"];
$od_id= $_GET["id"];
$iid= preg_replace('/[^a-z0-9_\-]/i', '', $iid);
$od_id =preg_replace('/[^a-z0-9_\-]/i', '', $od_id);
$sql = " select it_id, it_name, ct_send_cost, it_sc_type, ct_status
from {$g5['g5_shop_cart_table']}
where od_id = '$od_id' AND mb_id='{$member["mb_id"]}' and it_id = '{$iid}'";
$row= sql_fetch($sql);
if($row["ct_status"] == '完了' || $row["ct_status"] == '完了'|| $row["ct_status"] == '완료')
{
$sql = " select *
from {$g5['g5_shop_item_table']}
where it_id = '{$row['it_id']}' ";
$item= sql_fetch($sql);
$arr= explode(".", $item["it_add"]);
$ext = $arr[sizeof($arr)-1];
$ext= strtolower($ext);
$exts = array("php","php3","php4", "php5","html", "inc","htm", "sql");
if(in_array($exts, $ext))
{
exit;
}
$data = file_get_contents($item["it_add"]);
header("Content-Disposition: attachment; filename=" . urlencode($item["it_add_subj"]));
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");
//header("Content-Length: " . filesize($file));
print file_get_contents($item["it_add"]);
flush(); // this doesn't really matter.
}
관리자 페이지 버튼 하나 더 추가 itemform.php
<tr>
<th scope="row">DOWNLOAD (zip)</th>
<td class="td_extra">
<label for="it_1_subj">file이름</label>
<input type="text" name="it_1_subj" id="it_1_subj" value="<?php echo get_text($it['it_1_subj']) ?>" class="frm_input">
<label for="it_1">file URL</label>
<input type="text" name="it_1" value="<?php echo get_text($it['it_1']) ?>" id="it_1" class="frm_input">
</td>
<td class="td_grpset">
<input type="checkbox" name="chk_ca_<?php echo $i ?>" value="1" id="chk_ca_<?php echo $i ?>">
<label for="chk_ca_<?php echo $i ?>">분류적용</label>
<input type="checkbox" name="chk_all_<?php echo $i ?>" value="1" id="chk_all_<?php echo $i ?>">
<label for="chk_all_<?php echo $i ?>">전체적용</label>
</td>
</tr>
<tr>
<th scope="row">DOWNLOAD (jpg) </th>
<td class="td_extra">
<label for="it_add_subj">file이름</label>
<input type="text" name="it_add_subj" id="it_add_subj" value="<?php echo get_text($it['it_add_subj']) ?>" class="frm_input">
<label for="it_add_subj">file URL</label>
<input type="text" name="it_add" value="<?php echo get_text($it['it_add']) ?>" id="it_add" class="frm_input">
</td>
<td class="td_grpset">
<input type="checkbox" name="chk_ca_<?php echo $i ?>" value="1" id="chk_ca_<?php echo $i ?>">
<label for="chk_ca_<?php echo $i ?>">분류적용</label>
<input type="checkbox" name="chk_all_<?php echo $i ?>" value="1" id="chk_all_<?php echo $i ?>">
<label for="chk_all_<?php echo $i ?>">전체적용</label>
</td>
</tr>
여기서 원래 it_1 만 있었는데 제가 밑에 버튼을 it_add로 바꾸어서 혹시 이렇게만 바꾸면 올리면 다운로드가 되지 않을까 했는데 되질 않더라고요.. download.php에서도 if문 줘서 해봤는데도.. 어렵고요
<?php if($opt['ct_status'] =='완료') {?>
<td headers="th_itst" class="td_mngsmall" id="download-available"><a href='download.php?id=<?=$od_id?>&iid=<?=$row["it_id"]?>' class="download-available__href">DOWNLOAD</a></td>
<?php }else {?>
<td headers="th_itst" class="td_mngsmall"><i class="fas fa-ellipsis-h"></i></td>
<?php }?>
<?php if($opt['ct_status'] =='완료') {?>
<td headers="th_itst" class="td_mngsmall" id="download-available"><a href='download.php?id=<?=$od_id?>&iid=<?=$row["it_id"]?>' class="download-available__href">DOWNLOAD<!--<p class="download-unavailable">준비중</p> --></a></td>
<?php }else {?>
여기서도 이렇게 두개의 파일을 다운 받을수 있게 했지만 역시.. 똑같은 파일만 다운되거나 둘다 안되거나 하는데 어떻게 해야할지 모르겠습니다ㅠㅠ 조언을 구하고 싶네요
!-->!-->!-->
답변 1
변경된 download.php는 g5_shop_item.it_add에 있는 것만 다운로드하게 되어 있군요.
<th scope="row">DOWNLOAD (jpg) </th>
<td class="td_extra">
<label for="it_add_subj">file이름</label>
<input type="text" name="it_add_subj" id="it_add_subj" value="<?php echo get_text($it['it_add_subj']) ?>" class="frm_input">
<label for="it_add_subj">file URL</label>
<input type="text" name="it_add" value="<?php echo get_text($it['it_add']) ?>" id="it_add" class="frm_input">
</td>
이 부분을 보니 파일을 첨부 파일 형태로 서버에 올리는 게 아니라
URL을 입력하신 것 같은데
이 URL이 가리키는 곳에 파일이 없는 거 같습니다.
download.php가 있는 곳부터 상대적인 위치에 있어야 합니다.
답변을 작성하시기 전에 로그인 해주세요.