답사기 : 아....머리아프다.. 정보
그누보드 답사기 : 아....머리아프다..본문
답사기 : http://sir.co.kr/?doc=bbs/gnuboard.php&bo_table=skin3&sselect=wr_subject&stext=%B4%E4%BB%E7%B1%E2&soperator=1&page=1&wr_id=9774
아래 내용은 gbupdate.skin.php
파일 내용중에 복사본 파일 즉 "./data/file/$bo_table/$file_name_s.$img_ext
$file_name_s <-- s 라는 파일이 존재 안합니다.
바로 직방으로 올리고 그파일이 원본이 되고 게시판에 보여줍니다.
그러므로 gd 는 사용안한다는 소리죠.. 변환 작업이 없으니..
문제는 모질라나 파이어폭스에서 파일이 안올라간다는것이죠.. 파일이 업로드 되야
게시판에서 보여줄것인데 ..파일이 업로드가 안되네요?
익스플러러에서는 아무 이상없이 잘됩니다. ㅡㅡ?
위에 _s 가 들어가는 파일과 연관성이 있는것 같은데.. 모르겠습니다.
또 한가지는 gbupdate.skin.php 에서 본문내용과 확장내용을 합쳐서 ..
내용검색시 검색이 되게 해야 하느데.. 그거 구현방법도 모르겠습니다.
gbupdate.skin.php 부분에서 수정하는것 같은데...
아시는분 조언줌 부탁드립니다..
======================================================================================================
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include "$board_skin/config.skin.php";
$msg = "";
for ($i=count($_POST["wf_cont"])-1; $i>=0; $i--)
{
$img_ext = ""; //??????????????
if ($_POST[wf_id_del][$i])
{
$file_name = get_thumb_filename($wr_id, $i);
// 삭제할 파일의 확장자 찾기
$sql = " select wf_ext from $file_table where wr_id = $wr_id and wf_id = $i "; //xxxxxxxxxxxxx
$row = sql_fetch($sql); //xxxx
@unlink("./data/file/$bo_table/{$file_name}.$row[0]"); //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
$sql = " delete from $file_table where wr_id = $wr_id and wf_id = $i "; //xxxxxxxxxxx
sql_query($sql);
continue; //xxxxxxxxxxxxxxxxxxxxxxxxxxxx???????????????????
}
$file_name = get_thumb_filename($wr_id, $i);
if ($_FILES["wf_file"][error][$i] == 0 && $_FILES["wf_file"][size][$i] <= ($file_size * 1024))
{
$src_file = $_FILES["wf_file"][tmp_name][$i];
$orgsize = getimagesize($src_file); //xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
switch($orgsize[2]) {
case 1: // GIF image
$img_ext = "gif"; break;
case 2: // JPEG image
$img_ext = "jpg"; break;
case 3: // PNG image
$img_ext = "png"; break;
}
$dst_file = $image = "./data/file/$bo_table/$file_name.$img_ext"; //xxxxxxxxxxxxxxxxxxxxxxxxxx
move_uploaded_file($src_file, $dst_file);
$size = getimagesize($image);
/* switch($size[2]) { //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
case 1: // GIF image
$src = @ImageCreateFromGIF($image); break;
case 2: // JPEG image
$src = @ImageCreateFromJPEG($image); break;
case 3: // PNG image
$src = @ImageCreateFromPNG($image); break;
}
*/
// 이미지 높이 비율
$rate = $size[1] / $size[0];
// 작은이미지의 높이
$simg_height = (int)($simg_width * $rate);
// 이미지가 png,gif,jpg 라면
if ($src)
{
// 이미지(소) 생성
//$dst = imagecreatetruecolor($simg_width, $simg_height);
if (function_exists("imagecreatetruecolor")) {
// This function requires GD 2.0.1 or later.
$dst = @ImageCreateTrueColor($simg_width, $simg_height);
} else {
$dst = @ImageCreate($simg_width, $simg_height);
}
// 1.00.05 gd 버전에 따라
if (function_exists("imagecopyresampled")) {
@imagecopyresampled($dst, $src, 0, 0, 0, 0, $simg_width, $simg_height, $size[0], $size[1]);
} else {
// 1.00.02 imagecopyresized -> imagecopyresampled 로 교체
@imagecopyresized($dst, $src, 0, 0, 0, 0, $simg_width, $simg_height, $size[0], $size[1]);
}
@ImageJPEG($dst, "./data/file/$bo_table/{$file_name}.$img_ext", $image_quality);
@chmod($dst,0606);
@ImageDestroy($src);
@ImageDestroy($dst);
}
}
else if ($_FILES["wf_file"][size][$i] > ($file_size * 1024))
{
$msg = "용량이 {$file_size}KB 이상되는 이미지 파일은 업로드 되지 않습니다.\\n\\n만약, 이미지가 업로드 되지 않았다면 용량이 초과한 경우일 겁니다.";
}
$file = "./data/file/$bo_table/{$file_name}.$img_ext"; ////////////////////////////////////////////////////
if ($_FILES["wf_file"][error][$i] == 0 || $_POST[wf_cont][$i] || file_exists($file))
{
$sql = " insert $file_table
set wr_id = $wr_id,
wf_id = $i,
wf_ext = '$img_ext',
wf_cont = '{$_POST[wf_cont][$i]}' ";
$result = @mysql_query($sql);
if (!$result)
{
// 수정시에 이미지 확장자가 다른것으로 바뀌면 기존에 올라간 파일을 제거
if($img_ext != "") {
$sql = " select wf_ext from $file_table where wr_id = $wr_id and wf_id = $i ";
$row = sql_fetch($sql);
if($img_ext != $row[0]) {
@unlink("./data/file/$bo_table/{$file_name}.$row[0]");
}
}
$sql = " update $file_table set wf_cont = '{$_POST[wf_cont][$i]}' ";
if($img_ext != "") $sql .= ",wf_ext = '$img_ext'";
$sql .= " where wr_id = $wr_id and wf_id = $i ";
@mysql_query($sql);
}
}
}
if ($msg)
echo "<script> alert('$msg'); </script>";
//print_r2($_FILES); exit;
?>
======================================================================================================
아래 내용은 gbupdate.skin.php
파일 내용중에 복사본 파일 즉 "./data/file/$bo_table/$file_name_s.$img_ext
$file_name_s <-- s 라는 파일이 존재 안합니다.
바로 직방으로 올리고 그파일이 원본이 되고 게시판에 보여줍니다.
그러므로 gd 는 사용안한다는 소리죠.. 변환 작업이 없으니..
문제는 모질라나 파이어폭스에서 파일이 안올라간다는것이죠.. 파일이 업로드 되야
게시판에서 보여줄것인데 ..파일이 업로드가 안되네요?
익스플러러에서는 아무 이상없이 잘됩니다. ㅡㅡ?
위에 _s 가 들어가는 파일과 연관성이 있는것 같은데.. 모르겠습니다.
또 한가지는 gbupdate.skin.php 에서 본문내용과 확장내용을 합쳐서 ..
내용검색시 검색이 되게 해야 하느데.. 그거 구현방법도 모르겠습니다.
gbupdate.skin.php 부분에서 수정하는것 같은데...
아시는분 조언줌 부탁드립니다..
======================================================================================================
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include "$board_skin/config.skin.php";
$msg = "";
for ($i=count($_POST["wf_cont"])-1; $i>=0; $i--)
{
$img_ext = ""; //??????????????
if ($_POST[wf_id_del][$i])
{
$file_name = get_thumb_filename($wr_id, $i);
// 삭제할 파일의 확장자 찾기
$sql = " select wf_ext from $file_table where wr_id = $wr_id and wf_id = $i "; //xxxxxxxxxxxxx
$row = sql_fetch($sql); //xxxx
@unlink("./data/file/$bo_table/{$file_name}.$row[0]"); //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
$sql = " delete from $file_table where wr_id = $wr_id and wf_id = $i "; //xxxxxxxxxxx
sql_query($sql);
continue; //xxxxxxxxxxxxxxxxxxxxxxxxxxxx???????????????????
}
$file_name = get_thumb_filename($wr_id, $i);
if ($_FILES["wf_file"][error][$i] == 0 && $_FILES["wf_file"][size][$i] <= ($file_size * 1024))
{
$src_file = $_FILES["wf_file"][tmp_name][$i];
$orgsize = getimagesize($src_file); //xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
switch($orgsize[2]) {
case 1: // GIF image
$img_ext = "gif"; break;
case 2: // JPEG image
$img_ext = "jpg"; break;
case 3: // PNG image
$img_ext = "png"; break;
}
$dst_file = $image = "./data/file/$bo_table/$file_name.$img_ext"; //xxxxxxxxxxxxxxxxxxxxxxxxxx
move_uploaded_file($src_file, $dst_file);
$size = getimagesize($image);
/* switch($size[2]) { //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
case 1: // GIF image
$src = @ImageCreateFromGIF($image); break;
case 2: // JPEG image
$src = @ImageCreateFromJPEG($image); break;
case 3: // PNG image
$src = @ImageCreateFromPNG($image); break;
}
*/
// 이미지 높이 비율
$rate = $size[1] / $size[0];
// 작은이미지의 높이
$simg_height = (int)($simg_width * $rate);
// 이미지가 png,gif,jpg 라면
if ($src)
{
// 이미지(소) 생성
//$dst = imagecreatetruecolor($simg_width, $simg_height);
if (function_exists("imagecreatetruecolor")) {
// This function requires GD 2.0.1 or later.
$dst = @ImageCreateTrueColor($simg_width, $simg_height);
} else {
$dst = @ImageCreate($simg_width, $simg_height);
}
// 1.00.05 gd 버전에 따라
if (function_exists("imagecopyresampled")) {
@imagecopyresampled($dst, $src, 0, 0, 0, 0, $simg_width, $simg_height, $size[0], $size[1]);
} else {
// 1.00.02 imagecopyresized -> imagecopyresampled 로 교체
@imagecopyresized($dst, $src, 0, 0, 0, 0, $simg_width, $simg_height, $size[0], $size[1]);
}
@ImageJPEG($dst, "./data/file/$bo_table/{$file_name}.$img_ext", $image_quality);
@chmod($dst,0606);
@ImageDestroy($src);
@ImageDestroy($dst);
}
}
else if ($_FILES["wf_file"][size][$i] > ($file_size * 1024))
{
$msg = "용량이 {$file_size}KB 이상되는 이미지 파일은 업로드 되지 않습니다.\\n\\n만약, 이미지가 업로드 되지 않았다면 용량이 초과한 경우일 겁니다.";
}
$file = "./data/file/$bo_table/{$file_name}.$img_ext"; ////////////////////////////////////////////////////
if ($_FILES["wf_file"][error][$i] == 0 || $_POST[wf_cont][$i] || file_exists($file))
{
$sql = " insert $file_table
set wr_id = $wr_id,
wf_id = $i,
wf_ext = '$img_ext',
wf_cont = '{$_POST[wf_cont][$i]}' ";
$result = @mysql_query($sql);
if (!$result)
{
// 수정시에 이미지 확장자가 다른것으로 바뀌면 기존에 올라간 파일을 제거
if($img_ext != "") {
$sql = " select wf_ext from $file_table where wr_id = $wr_id and wf_id = $i ";
$row = sql_fetch($sql);
if($img_ext != $row[0]) {
@unlink("./data/file/$bo_table/{$file_name}.$row[0]");
}
}
$sql = " update $file_table set wf_cont = '{$_POST[wf_cont][$i]}' ";
if($img_ext != "") $sql .= ",wf_ext = '$img_ext'";
$sql .= " where wr_id = $wr_id and wf_id = $i ";
@mysql_query($sql);
}
}
}
if ($msg)
echo "<script> alert('$msg'); </script>";
//print_r2($_FILES); exit;
?>
======================================================================================================
댓글 전체

불여우로 업로드 했을때 안 올라가는 거 같아도 FTP 에 파일이 있다면 정상적으로 등록은 된 것입니다.
그 정상적인 것이 문제인데...
위 소스는 업데이트 파일 같습니다만,
GD 를 사용안 한다면 GD 관련 내용을 모두 제거 해 주셔야 오류가 없습니다.
있는데 오류가 없더라도 기본적으로 사용안하면 제거해 주셔야 합니다.
당연히 사용을 안하니, GD에서 빠져나오는 _s 는 필요가 없어집니다.
그리고 내용을 검색을 하기 위해 합치는 일은 폼스킨에 하단에 `스크립`으로 존재 합니다.
(`// 내용 검색에 나오게 하기 위하여 내용을 합침` 이란 단어)
그 정상적인 것이 문제인데...
위 소스는 업데이트 파일 같습니다만,
GD 를 사용안 한다면 GD 관련 내용을 모두 제거 해 주셔야 오류가 없습니다.
있는데 오류가 없더라도 기본적으로 사용안하면 제거해 주셔야 합니다.
당연히 사용을 안하니, GD에서 빠져나오는 _s 는 필요가 없어집니다.
그리고 내용을 검색을 하기 위해 합치는 일은 폼스킨에 하단에 `스크립`으로 존재 합니다.
(`// 내용 검색에 나오게 하기 위하여 내용을 합침` 이란 단어)