write_update.haed.skin.php 에서 경고창 띄울 수 있는 방법이 있을까요?
본문
구현하고자 하는 방법 :
게시글에 이미지 업로드시
업로드 이미지 가로 사이즈를 확인하여 지정한 사이즈(예:1200px)보다 크면
"업로드한 이미지가 1200px보다 크므로 업로드 하지 않습니다."
라는 경고창이 나오고 게시글 작성이 완료되도록 한다.
구현하고 있는 코드 :
write_update.haed.skin.php
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if(isset($_FILES['bf_file']['name']) && is_array($_FILES['bf_file']['name'])) {
for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {
$tmp_file = $_FILES['bf_file']['tmp_name'][$i];
$tmp_filename = $_FILES['bf_file']['name'][$i];
if (is_uploaded_file($tmp_file)) {
$timg = @getimagesize($tmp_file);
$width = $timg[0]; // 너비
if($width > 1200) { // 1200보다 크다면
$temp_msg .= '업로드한 \"'.$tmp_filename.'\" 이미지가 1200px 보다 크므로 업로드 하지 않습니다. 현재 가로 사이즈: ('.$width.')\\n';
continue;
}
}
}
}
if ($temp_msg)
alert($temp_msg)
문제점 :
alert($temp_msg)
적용시 당연히 글쓰기 페이지로 돌아갑니다. 원하는 구현방법은 경고창만 나오고 게시글이 정상적으로 작동되었으면 합니다.
alert($temp_msg) 대신 echo "<script>alert('메세지');history.go(-1);</script>" 처럼 스크립트 처리하면 작동할 줄 알았는데 경고창이 나오지 않습니다.
어떻게 하면 write_update.haed.skin.php 파일에서 경고창으 띄우고 넘어가게 할 수 있을까요?
!-->답변 3
if ($temp_msg)
alert($temp_msg,G5_URL.'/'.$bo_table.'/'.$wr_id);
를 write_update.skin.php 여기에 위와 같이 넣으면 넘어는 가는데요.
올리신 코드가 이미지는 등록이 안되어야 하는것 아닌가요?
테스트 해보니 이미지 등록이 되는데요??
제가 잘못이해한건가요?
if ($temp_msg)
alert($temp_msg)
이 부분을 write.update.tail.skin.php에 넣거나 훅을 활용하여 실행 순서를 최하단으로 옮기시면 될 것 같네요.
!-->write.skin.php 에서
ajax로 하거나,
파일만 먼저 서버로 전송하여 사이즈체크를 하시는게 더 나을것 같습니다.
javascript로 체크하는방법도 있습니다.