업로든된 파일의 이름을 가져오기 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

업로든된 파일의 이름을 가져오기 정보

업로든된 파일의 이름을 가져오기

본문

나름대로 좀 찾아보고 뒤져보고.. 해서 대충 알고는 있습니다.
답변을 엉망으로 하셔도 원망은 하지 않겠습니다.
 
저도 솔찍히 게을러서.. 도저히 하기가 싫군요..
너무 할것이 방대(?) 까지는 아니라도.. 알아야 될께 많다보니..
 
문제의 원인은.. 자료실의 브레스님의 mp3게시판을 사용하다가..
꼭 링크만으로 플레이를 해야되어서..
 
이걸 해소하고자 했습니다.
소스를 좀 뒤져보니.. 아이쿠 머리가 아파와서..
잔머리(?)를 좀 굴려서.. 그냥 게시물을 적을때 링크 1에
올리는 mp3의 주소가 적도록 하고 싶습니다.
 
즉.. 123.mp3 파일을 올리면..
이렇게 링크가 되어비리는것이지요
 
자동으로 이값을 넣어주자니..
이젠 변수를 모릅니다.
 
하여간.. db를 뒤져보니.. gn_board_file에 이게 적혀 있더군요.
 
계속 작업을 하려다 보니..
 
일단 조언을 구해야 겠다고 생각이 되어서.. 이렇게 글을 올립니다.
 
게시판에서 write할때.. 저 업로드되는 변경이름을 알수 있는지요?
그렇다면 바로 링크1에 넣어주고
 
그것이 불가능하다면.. db에서 읽어서.. 다시 넣어주도록 프로그램을 해야될듯 해서
 
어느쪽으로 프로그램을 해야될지 결정을 못내렸습니다.
 
즉 지금의 문제는 dkfkajdkjf+dkfjka1+123.mp3  <--- 이녀석을 알아내는것이죠
 
 
업로드후 변경되는 이름을 알아낼때..아님.. 이녀석이 분명 어디 변수에 들어갈듯 싶은데
 
이 변수명을 혹시 아시는지요?
 
그리고 추가로..
제 도메인 주소를 알고 있는 변수명과
 
http:// + 도메인명 +  아마도g4변수 + data/file + table변수는 g4[table]인가 하여간 + 업로든된 파일명
 
 
여기서 제가 모르는건 다 이지만 대충 알아낼수 있을듯 합니다.
 
도메인명 변수 <--- 모르면 그냥.. php에 server로 대충 알아내면 될듯 하고
나머지들도 다 알수는 있겠는데 문제는.. 역시....
 
그 업로드된 파일명입니다.
 
이녀석이 변수로 안들어가나요.. 아직 그누를 자세히 분석해 보지도 않았고
그리분석할만큼.. 제가 이쪽 밥벌이도 아니다 보니.. 그저 도움을 부탁드립니다.
 
 
  • 복사

댓글 전체

감사합니다.
그말은 작성후이고.. 작성후라면.. DB를 직접 접근해서.. 가져오는게 좋을듯 싶고요..
제말은... 작성할때... 저 파일명이 만들어지는 루틴이 뭔가 해서요.. 분석하기가 싫어서 ^^;;
작성하고 완료버튼을 누를때
바로 링크에 기록이 되게 하고 싶은것이죠..

여하튼.. 답변이라도 달아주셔서 감사합니다.

아마도 링크되는녀석을 찾아보란 이야기 같군요... 네.. 그렇죠.. 감사합니다.
오늘은.. 덥고 짜증이 나서.. 이만 해야하는데 잠이 안오다 보다 조금 날카롭습니다.

낼 정신이 조금 개이면 똑바로 해야죠..
write_update.php

109줄 부터 있는

// 가변 파일 업로드
$file_upload_msg = "";
$upload = array();
for ($i=0; $i<count($_FILES[bf_file][name]); $i++)
{
    // 삭제에 체크가 되어있다면 파일을 삭제합니다.
    if ($_POST[bf_file_del][$i])
    {
        $upload[$i][del_check] = true;

        $row = sql_fetch(" select bf_file from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$i' ");
        @unlink("$g4[path]/data/file/$bo_table/$row[bf_file]");
    }
    else
        $upload[$i][del_check] = false;

    $tmp_file  = $_FILES[bf_file][tmp_name][$i];
    $filename  = $_FILES[bf_file][name][$i];
    $filesize  = $_FILES[bf_file][size][$i];

    // 서버에 설정된 값보다 큰파일을 업로드 한다면
    if ($filename)
    {
        if ($_FILES[bf_file][error][$i] == 1)
        {
            $file_upload_msg .= "\'{$filename}\' 파일의 용량이 서버에 설정($upload_max_filesize)된 값보다 크므로 업로드 할 수 없습니다.\\n";
            continue;
        }
        else if ($_FILES[bf_file][error][$i] != 0)
        {
            $file_upload_msg .= "\'{$filename}\' 파일이 정상적으로 업로드 되지 않았습니다.\\n";
            continue;
        }
    }

    if (is_uploaded_file($tmp_file))
    {
        // 관리자가 아니면서 설정한 업로드 사이즈보다 크다면 건너뜀
        if (!$is_admin && $filesize > $board[bo_upload_size])
        {
            $file_upload_msg .= "\'{$filename}\' 파일의 용량(".number_format($filesize)." 바이트)이 게시판에 설정(".number_format($board[bo_upload_size])." 바이트)된 값보다 크므로 업로드 하지 않습니다.\\n";
            continue;
        }

        // 4.00.11 - 글답변에서 파일 업로드시 원글의 파일이 삭제되는 오류를 수정
        if ($w == 'u')
        {
            // 존재하는 파일이 있다면 삭제합니다.
            $row = sql_fetch(" select bf_file from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$i' ");
            @unlink("$g4[path]/data/file/$bo_table/$row[bf_file]");
        }

        // 프로그램 원래 파일명
        $upload[$i][source] = $filename;
        $upload[$i][filesize] = $filesize;

        // 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
        $filename = preg_replace("/\.(php|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i", "$0-x", $filename);

        // 접미사를 붙인 파일명
        //$upload[$i][file] = abs(ip2long($_SERVER[REMOTE_ADDR])).'_'.substr(md5(uniqid($g4[server_time])),0,8).'_'.urlencode($filename);
        // 달빛온도님 수정 : 한글파일은 urlencode($filename) 처리를 할경우 '%'를 붙여주게 되는데 '%'표시는 미디어플레이어가 인식을 못하기 때문에 재생이 안됩니다. 그래서 변경한 파일명에서 '%'부분을 빼주면 해결됩니다.
        $upload[$i][file] = abs(ip2long($_SERVER[REMOTE_ADDR])).'_'.substr(md5(uniqid($g4[server_time])),0,8).'_'.str_replace('%', '', urlencode($filename));

        $dest_file = "$g4[path]/data/file/$bo_table/" . $upload[$i][file];

        // 업로드가 안된다면 에러메세지 출력하고 죽어버립니다.
        $error_code = move_uploaded_file($tmp_file, $dest_file) or die($_FILES[bf_file][error][$i]);

        // 올라간 파일의 퍼미션을 변경합니다.
        chmod($dest_file, 0606);

        $upload[$i][image] = @getimagesize($dest_file);

    }
}
^^;;
여하튼 신경을 써주셔서 감사합니다.
날씨가 덥다보니.. 제가.. 뭔 말을 적었는지도 모르겠습니다.
잠을 너무 오랜시간 안자서 인지 머리가 멍 하기도 하고요..
정신이 바로 잡히면 다시 해봐야지요.
밑에서 6번째줄에 move_uploaded_file 함수가 그겁니다
업로드된 파일이 $tmp_file, 타겟 파일이 $dest_file
$dest_file에 정해준 경로와 파일명으로 저장이 됩니다.

위로 4줄 더 올라가보니 $upload[$i][file] 변수에 파일명을 정해주네요
© SIRSOFT
현재 페이지 제일 처음으로