파일 업로드 관해서
본문
배열로 파일을 받고 있습니다.
근데 첨부파일을 넣지않고 하면 $body_file 이 공백으로 출력이 됩니다.ㅠㅠ
기존 DB에서 불러와야 되는건가요 첨부파일을? 그리고 입력부분에 변경된 내역이 있으면
배열로 받아서 달라진 점을 수정해서 쿼리 업데이트를 해야하는건지..ㅠ
<input type="hidden" name="kc_file_num" id="kc_file_num" value="<?php echo$kc['kc_file_num']?$kc['kc_file_num']:"0";?>">
<? $k=0; for($i=0;$i<$kc['kc_file_num'];$i++) { $k++; ?>
<tr>
<th scope="row"><label for="kc_content[<?php echo $k?>]">본문 이미지 <?php echo $k;?></label></th>
<td colspan="3">
<?php
$img_st = explode("|", $kc['kc_content']);
$img_path = str_replace(G5_URL,'',$img_st[$k]);
$img_path = str_replace("/","\\",$img_path);
if($kc['kc_content']) { $img_path = "..".$img_path; }
?>
<input type="file" name="kc_content[<?php echo $k?>]" id="kc_content" multiple>
<?
if (file_exists($img_path)) {
echo '<BR /><BR /><input type="checkbox" id="kc_body_src_del" name="kc_body_src_del" value="1">이미지 삭제';
echo '<BR /><img src="'.$img_path.'" width="50%" alt="">';
}
?>
</td>
</tr>
<?}?>
<script>
var num = $('#kc_file_num').val();
function content_add()
{
num++;
$('#kc_file_num').val(num);
$('#tb > tbody:last').append('<tr><th scope="row"><label for="kc_content['+ num +']">본문 이미지 '+ num +'</label></th><td colspan="3"><input type="file" name="kc_content['+ num +']" id="kc_content"></td></tr>');
}
</script>
for($k=0;$k<$_POST['kc_file_num'];$k++)
{
// 이미지 저장
if (is_uploaded_file($_FILES['kc_content']['tmp_name'][$k])) {
if (!preg_match("/(\.jpg)$/i", $_FILES['kc_content']['name'][$k])) {
alert($_FILES['kc_content']['name'][$k] . '은(는) jpg 파일이 아닙니다.');
}
if (preg_match("/(\.jpg)$/i", $_FILES['kc_content']['name'][$k])) {
@mkdir(G5_DATA_PATH.'/kc/invited/'.$dateymd.'/'.$_POST['kc_id'].'/body/', G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH.'/kc/invited/'.$dateymd.'/'.$_POST['kc_id'].'/body/', G5_DIR_PERMISSION);
//@unlink($img_path); // 기존 이미지가 있으면 삭제 후 진행 함
//$head_file = "";
$dest_path = G5_DATA_PATH.'/kc/invited/'.$dateymd.'/'.$_POST['kc_id'].'/body/';
$md5_img = md5_file($_FILES['kc_content']['tmp_name'][$k]).".jpg";
move_uploaded_file($_FILES['kc_content']['tmp_name'][$k], $dest_path.$md5_img);
chmod($dest_path, G5_FILE_PERMISSION);
$body_file = "|";
$body_file .= G5_DATA_URL.'/kc/invited/'.$dateymd.'/'.$_POST['kc_id'].'/body/'.$md5_img;
echo $body_file;
}
}
}
답변 1
파일이 올라와 있는지 없는지
if문으로 판단하여
파일이 올라와있다면 모든 내용을 업데이트하고
파일이 올라와 있지 않다면 파일을 제외한 나머지 부분만 업데이트 하면 될 것 같습니다.
답변을 작성하시기 전에 로그인 해주세요.