XETOWN

질문/답변

웹에 관련된 질문과 답변을 나눌 수 있습니다.
질문/답변
2016.11.21 22:44

[모듈개발] 이미지 파일첨부 & 출력

조회 수 97 댓글 14

안녕하세요 오랜만에 질문을 남기게 되었습니다

 

현재 만드는 모듈에 게시글 작성시 섬네일로 쓸 이미지파일을 첨부받은 뒤에 list.html 쪽에 [이미지] [제목] 이런식으로 게시판처럼 만드려고하는데요 

 

write.html 에서 파일첨부를 

<tr>
        <th>{$lang->file}</th>
        <td class="left"><input type="file" name="upfile"></td>
  </tr>

이렇게 해서 파일 첨부를 받습니다

 

그리고 프론트 컨트롤러에서

 

function procShopContentWrite() {

            // request 값을 모두 받음
            $obj = Context::getRequestVars();

// 현재 모듈번호 확인
$obj->module_srl = Context::get('module_srl');

//shop_srl 확인
$shop_srl = Context::get('shop_srl');

// shop_srl에 따라 새로 입력하거나 수정하기 위해
if($shop_srl) 
            {
// module_srl이 있으면 update
$output = executeQuery("shop.updateShop", $obj);
$this->setMessage('success_updated');

} 
            else 
            {
                
                //module_srl번호를 넘겨주어야 하므로
                $module_info = Context::get("module_info");
                $module_srl = $module_info->module_srl;
                //첨부파일에 대한 정보는 Context::get으로 name을 입력만 해주면 됩니다.
                $upfile= Context::get("upfile");
                //upload_target_srl을 입력해줍니다. 여기서는 테스트를 위해 고정값을 입력했습니다. 필요한 숫자를 구하시면 되겠죠.
                $upload_target_srl = $shop_srl;

                //XE에서는 file이란 module을 제공하고 있습니다.
                $oFileController = getController('file');
                $output = $oFileController->insertFile($upfile, $module_srl, $upload_target_srl);
                
// module_srl이 없으면 insert
$output = executeQuery("shop.insertShop", $obj);
$this->setMessage('success_registed');
                
                var_dump($upfile);
}
 
}

이렇게 했는데 왜.. 

var_dump 로 보면 null 값이 들어갈까요?ㅜㅜ

 

http://dingadinga.tistory.com/183 이쪽에서 XE File Upload 부분을 봐서 해본건데 제가 잘못넣은건지...ㅎ

 

테스트로 <input type="hidden" name="tests" value="6" /> 해서 컨트롤러에서 찍어보면 6이 제대로나오는데.. file 같은경우는 null값이 떠버리네요...

  • ?
    SimpleCode 2016.11.21 23:51:03
    <form>에서 enctype 속성 값이 multipart/form-data이여만 파일이 서버로 전송됩니다.
    null이 날라왔다면, 폼 전송 단계에서 파일이 아예 넘어오지 않았다는 거에요.
  • profile
    네비 2016.11.22 01:15:56 Files첨부 (3)

    enctype="multipart/form-data"가 추가가 안되있어서 추가하고 썼는데.. 그래도 안되네요ㅎ.. 도대체 뭐가 잘못된건지...ㅜㅜ

     

    아니면 혹시 이와 같은 첨부파일기능이 달린 참고할만한 모듈이있을까요...

     

    캡처.PNG

     

    캡처2.PNG

     

    3.PNG

     

     

  • ?
    SimpleCode 2016.11.22 01:19:31
    XE에서 제공하는 XML JS Filter로는 파일 전송이 되지 않습니다.

    Resource 모듈을 참고하시면 XML JS Filter를 이용하면서도 파일 첨부를 할 수 있으니, 한 번 훑어보세요.
    워낙 방대한 내용이라 일일이 설명해드리기가 어렵네요.

    https://www.xpressengine.com/index.php?mid=download&package_id=18324191
  • profile
    네비 2016.11.22 10:24:05
    감사합니다 한번 보도록하겠습니다 ㅎ
  • profile
    GG 2016.11.22 10:12:55
    var_dump($obj) 해보셔요...
  • profile
    네비 2016.11.22 10:25:30

    object(stdClass)#117 (12) {
      ["_filter"]=>
      string(14) "content_insert"
      ["error_return_url"]=>
      string(45) "/index.php?mid=tests&act=dispShopContentWrite"
      ["act"]=>
      string(20) "procShopContentWrite"
      ["mid"]=>
      string(5) "tests"
      ["module_srl"]=>
      string(3) "136"
      ["regdate"]=>
      string(8) "20161122"
      ["shop_infomation"]=>
      string(13) "내용"
      ["member_srl"]=>
      string(1) "0"
      ["shop_title"]=>
      string(6) "제목"
      ["shop_category"]=>
      string(6) "없음"
      ["shop_price"]=>
      string(3) "222"
      ["module"]=>
      string(4) "shop"
    }

     

    보면... 프론트쪽에서 file input name가  upfile 로되어있는데 upfile라는게 없는걸보면 못넘어온것같습니다..

  • profile
    구름이 2016.11.22 10:39:24
    xml filter 사용하시면 사용하지 마시고 proc로 폼을 바로 전송해보세요.
  • profile
    네비 2016.11.22 11:20:08 Files첨부 (1)

    필터에서 file 업로드체크에관한 노드는 적지않았습니다 모듈첨부해두겠습니다 ㅜㅜ

    shop.zip

  • profile
    구름이 2016.11.22 12:01:32

    write.html

    4번 라인 <form action="./" method="get" enctype="multipart/form-data" onsubmit="return procFilter(this, content_insert);" >

    method="get" 를 post 로 해보세요.
    그리고 4 랑 52 라인 onsubmit="return procFilter(this, content_insert);" <- 이거 빼보시구요..

  • profile
    네비 2016.11.22 12:39:42
    필터부분을 통해 proc 컨트롤러로 가던데...write.html에서 onsubmit="return procFilter(this, content_insert);" 거치지않고 어떻게 바로보내죠? onsubmit="return procFilter(this, content_insert);"를 지우고 해보니 var_dump($obj);가 콘솔에 아예 찍히지않고 새로고침만 되었습니다
  • profile
    구름이 2016.11.22 13:01:10

    act 가 빠진거 같아요
    onsubmit 은 빼시고..
    <input type="hidden" name="act" value="proc이름" /> 을 form 에 추가해보세요.

  • profile
    네비 2016.11.22 13:56:21
    감사합니다 됐어요! ㅎㅎ 그런데 필터안쓰면 보안면에서 안좋지않나요?!
  • profile
    구름이 2016.11.22 14:29:16
    onsubmit 을 사용하시되 procfilter로 체크 하지 마시고 직접 자바스크립으로 체크하시면 될듯합니다
  • profile
    네비 2016.11.22 19:15:31
    아 그렇네요!! 감사합니다 ㅎㅎ

List of Articles
번호 분류 제목 최종 글
공지 질문/답변 답변을 확실히 받기위한 질문자 지침서 20  
3294 질문/답변 스케치북 게시판 모바일에서 2 2016.11.24 수정 pjk
3293 질문/답변 슈퍼캐시가 갑자기 작동을 안하는 것 같아요.. 3 file 2016.11.23 수정 김병화
3292 질문/답변 클플관련해서 1 2016.11.23 수정 기진곰
3291 질문/답변 [모듈] $upload_target_srl 에 관하여 2 2016.11.22 수정 네비
3290 질문/답변 FAQ 모듈 개발 중단 된건가요? 3 2016.11.22 수정 Stone돌미
3289 질문/답변 오래되서 기억이 가물가물한데 js에서 디버그 어떻게 하나요? 6 2016.11.22 수정 구름이
3288 질문/답변 효과적인 웹백업 어떻게 ? 32 2016.11.24 수정 웹지기
3287 질문/답변 서버 커널 업데이트 언제 하시나요? 9 2016.11.23 수정 Sunup
3286 질문/답변 MYSQL 에러같은데 전문가님들 딱 한번만 봐주세요 ㅠㅠ 11 file 2016.11.22 수정 엘비스
» 질문/답변 [모듈개발] 이미지 파일첨부 & 출력 14 2016.11.22 수정 네비
3284 질문/답변 mysql restart 에러 문의드립니다. 3 2016.11.21 수정 투데이
3283 질문/답변 레이아웃에서 위젯페이지인지, 게시판인지 구분하는 인자가 있을까요? 7 2016.12.07 수정 이온디
3282 질문/답변 글 작성시 선택한 분류명이 글의 '태그'에 입력되게 하고 싶습니다 4 2016.11.21 수정 콕콕콕
3281 질문/답변 대기 상태의 파일들은 지워버려도 되는건가요~~~~~? 2 2016.11.21 수정 투데이
3280 질문/답변 XETOWN처럼 첨부파일을 올리면 이미지가 바로 본문에 삽입되는 애드온 4 2016.11.21 수정 투데이
3279 질문/답변 라이믹스 최신버전에서 게시물 자동 이동기능이 또 안되네요 13 2016.11.24 수정 기븐
3278 질문/답변 포인트가 마이너스인 회원의 글쓰기를 제한하려면? 4 2016.11.20 수정 Chronos
3277 질문/답변 첨부 파일 용량을 높이려면 어떻게 해야 하나요? 3 2016.11.20 수정 Chronos
3276 질문/답변 레벨 마다 글쓰기 작성수를 제한 하고 싶은데 방법 없을까요... 3 2016.11.20 수정 투데이
3275 질문/답변 경험치 시스템 모듈-[회원 경험치 목록] 페이지 이동불가 현상 4 2016.11.20 수정 Novelic
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 171 Next
/ 171
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...