게시글 첨부파일 동영상 바로 보이도록 질문드려요!

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
게시글 첨부파일 동영상 바로 보이도록 질문드려요!

QA

게시글 첨부파일 동영상 바로 보이도록 질문드려요!

본문

기존의 있던 게시판에서 동영상첨부시 바로 보이도록 요청이 와서요!

https://sir.kr/g5_tip/11919 

여기 상석하대님의 소스를 인용해서 적용했는데 동영상이 안나오고 첨부파일로만 나오네요 ㅠㅠ 문제가 뭘까요 ?

 

하단에 소스첨부합니다!

 

write.skin


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?>
<?php include_once(G5_PLUGIN_PATH.'/jquery-ui/datepicker.php'); ?>
<link rel="stylesheet" href="<?=G5_URL?>/css/jquery-ui-timepicker-addon.css" />
<script src="<?=G5_URL?>/js/jquery-ui-timepicker-addon.js"></script>
<script>
 $(function(){
 $("#wr_datetime").datetimepicker({ 
     changeMonth: true, 
     changeYear: true, 
     dateFormat: "yy-mm-dd", 
     showButtonPanel: true, 
     yearRange: "c-99:c+99", 
     maxDate: "+999d",
     // timepicker 설정
    timeFormat:'HH:mm:ss',
    controlType:'select',
    oneLine:true,
      });
  $("#wr_10").datepicker({ 
     changeMonth: true, 
     changeYear: true, 
     dateFormat: "yy-mm-dd", 
     showButtonPanel: true, 
     yearRange: "c-99:c+99", 
     maxDate: "+999d"
      });
 });
</script>
<section id="bo_w">

    <!-- 게시물 작성/수정 시작 { -->
    <form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:<?php echo $width; ?>">
    <input type="hidden" name="uid" value="<?php echo get_uniqid(); ?>">
    <input type="hidden" name="w" value="<?php echo $w ?>">
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
    <input type="hidden" name="stx" value="<?php echo $stx ?>">
    <input type="hidden" name="spt" value="<?php echo $spt ?>">
    <input type="hidden" name="sst" value="<?php echo $sst ?>">
    <input type="hidden" name="sod" value="<?php echo $sod ?>">
    <input type="hidden" name="page" value="<?php echo $page ?>">
    <?php
    $option = '';
    $option_hidden = '';
    if ($is_notice || $is_html || $is_secret || $is_mail) {
        $option = '';
        if ($is_notice) {
            $option .= "\n".'<input type="checkbox" id="notice" name="notice" value="1" '.$notice_checked.'>'."\n".'<label for="notice">공지</label>';
        }
        if ($is_html) {
            if ($is_dhtml_editor) {
                $option_hidden .= '<input type="hidden" value="html1" name="html">';
            } else {
                $option .= "\n".'<input type="checkbox" id="html" name="html" onclick="html_auto_br(this);" value="'.$html_value.'" '.$html_checked.'>'."\n".'<label for="html">html</label>';
            }
        }
        if ($is_secret) {
            if ($is_admin || $is_secret==1) {
                $option .= "\n".'<input type="checkbox" id="secret" name="secret" value="secret" '.$secret_checked.'>'."\n".'<label for="secret">비밀글</label>';
            } else {
                $option_hidden .= '<input type="hidden" name="secret" value="secret">';
            }
        }
        if ($is_mail) {
            $option .= "\n".'<input type="checkbox" id="mail" name="mail" value="mail" '.$recv_email_checked.'>'."\n".'<label for="mail">답변메일받기</label>';
        }
    }
    echo $option_hidden;
    ?>
<div class="sub_container">
    <div class="content">
        <div class="article_wrap">
            <div class="article"> 
        <table class="table_st02">
                        <colgroup class="pc">
                            <col width="110px"/>
                            <col width="*"/>
                        </colgroup>
        <tbody>
        <?php if ($is_name) { ?>
        <tr>
            <th scope="row"><label for="wr_name">이름<strong class="sound_only"> 필수</strong></label></th>
            <td><input type="text" name="wr_name" value="<?php echo $name ?>" id="wr_name" required class="frm_input required" size="10" maxlength="20"></td>
        </tr>
        <?php } ?>
        <?php if ($is_password) { ?>
        <tr>
            <th scope="row"><label for="wr_password">비밀번호<strong class="sound_only"> 필수</strong></label></th>
            <td><input type="password" name="wr_password" id="wr_password" <?php echo $password_required ?> class="frm_input <?php echo $password_required ?>" maxlength="20"></td>
        </tr>
        <?php } ?>
        <?php if ($is_email) { ?>
        <tr>
            <th scope="row"><label for="wr_email">이메일</label></th>
            <td><input type="text" name="wr_email" value="<?php echo $email ?>" id="wr_email" class="frm_input email" size="50" maxlength="100"></td>
        </tr>
        <?php } ?>
        <?php if ($is_homepage) { ?>
        <tr>
            <th scope="row"><label for="wr_homepage">홈페이지</label></th>
            <td><input type="text" name="wr_homepage" value="<?php echo $homepage ?>" id="wr_homepage" class="frm_input" size="50"></td>
        </tr>
        <?php } ?>
        <?php if ($is_category) { ?>
        <tr>
            <th scope="row"><label for="ca_name">분류<strong class="sound_only">필수</strong></label></th>
            <td>
                <select name="ca_name" id="ca_name" required class="required" >
                    <option value="">선택하세요</option>
                    <?php echo $category_option ?>
                </select>
            </td>
        </tr>
        <?php } ?>
        <tr>
            <th scope="row">등록일</th>
            <td>
                <input type="text" name="wr_datetime" id="wr_datetime" value="<?=$write['wr_datetime']?>" size="24" readonly="readonly" required class="frm_input required"> <span style="color:red">※ 홈페이지 메인에 최신일자순으로 나타납니다.</span>
            </td>
        </tr>
        <tr>
            <th scope="row"><label for="wr_subject">제목<strong class="sound_only">필수</strong></label></th>
            <td>
                <div id="autosave_wrapper">
                    <input type="text" name="wr_subject" value="<?php echo $subject ?>" id="wr_subject" required class="frm_input required" size="50" maxlength="255">
                    <?php if ($is_member) { // 임시 저장된 글 기능 ?>
                    <script src="<?php echo G5_JS_URL; ?>/autosave.js"></script>
                    <?php if($editor_content_js) echo $editor_content_js; ?>
                    <button type="button" id="btn_autosave" class="btn_frmline">임시 저장된 글 (<span id="autosave_count"><?php echo $autosave_count; ?></span>)</button>
                    <div id="autosave_pop">
                        <strong>임시 저장된 글 목록</strong>
                        <div><button type="button" class="autosave_close"><img src="<?php echo $board_skin_url; ?>/img/btn_close.gif" alt="닫기"></button></div>
                        <ul></ul>
                        <div><button type="button" class="autosave_close"><img src="<?php echo $board_skin_url; ?>/img/btn_close.gif" alt="닫기"></button></div>
                    </div>
                    <?php } ?>
                </div>
            </td>
        </tr>
        <tr>
            <th scope="row"><label for="wr_content">내용<strong class="sound_only">필수</strong></label></th>
            <td class="wr_content">
                <?php if($write_min || $write_max) { ?>
                <!-- 최소/최대 글자 수 사용 시 -->
                <p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 이상, 최대 <strong><?php echo $write_max; ?></strong>글자 이하까지 글을 쓰실 수 있습니다.</p>
                <?php } ?>
                <?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
                <?php if($write_min || $write_max) { ?>
                <!-- 최소/최대 글자 수 사용 시 -->
                <div id="char_count_wrap"><span id="char_count"></span>글자</div>
                <?php } ?>
            </td>
        </tr>
        <?php for ($i=0; $is_file && $i<$file_count; $i++) { ?>
        <tr>
            <th scope="row">파일 #<?php echo $i+1 ?></th>
            <td>
                <input type="file" name="bf_file[]" title="파일첨부 <?php echo $i+1 ?> :  용량 <?php echo $upload_max_filesize ?> 이하만 업로드 가능" class="frm_file frm_input">
                <?php if ($is_file_content) { ?>
                <input type="text" name="bf_content[]" value="<?php echo ($w == 'u') ? $file[$i]['bf_content'] : ''; ?>" title="파일 설명을 입력해주세요." class="frm_file frm_input" size="50">
                <?php } ?>
                <?php if($w == 'u' && $file[$i]['file']) { ?>
                <input type="checkbox" id="bf_file_del<?php echo $i ?>" name="bf_file_del[<?php echo $i;  ?>]" value="1"> <label for="bf_file_del<?php echo $i ?>"><?php echo $file[$i]['source'].'('.$file[$i]['size'].')';  ?> 파일 삭제</label>
                <?php } ?>
            </td>
        </tr>
        <?php } ?>
           <?php for ($i=0; $is_file && $i<$file_count; $i++) { ?>
            <tr>
            <th scope="row">동영상파일 #<?php echo $i+1 ?></th>
    <td><div class="bo_w_flie write_div">
        <div class="file_wr write_div">
            <label for="bf_file_<?php echo $i+1 ?>" class="lb_icon"><i class="fa fa-download" aria-hidden="true"></i><span class="sound_only"> 파일 #<?php echo $i+1 ?></span></label>
            <input type="file" accept="video/mp4,video/webm,video/ogg" name="bf_file[]" id="bf_file_<?php echo $i+1 ?>" title="파일첨부 <?php echo $i+1 ?> : 용량 <?php echo $upload_max_filesize ?> 이하만 업로드 가능" class="frm_file videoext">
        </div>
        <?php if ($is_file_content) { ?>
        <input type="text" name="bf_content[]" value="<?php echo ($w == 'u') ? $file[$i]['bf_content'] : ''; ?>" title="파일 설명을 입력해주세요." class="full_input frm_input" size="50" placeholder="파일 설명을 입력해주세요.">
        <?php } ?>
        <?php if($w == 'u' && $file[$i]['file']) { ?>
        <span class="file_del">
            <input type="checkbox" id="bf_file_del<?php echo $i ?>" name="bf_file_del[<?php echo $i;  ?>]" value="1"> <label for="bf_file_del<?php echo $i ?>"><?php echo $file[$i]['source'].'('.$file[$i]['size'].')';  ?> 파일 삭제</label>
        </span>
        </td>
        </tr>
        <?php } ?>
        
    </div>
    <?php } ?>
        <?php if ($is_guest) { //자동등록방지  ?>
        <tr>
            <th scope="row">자동등록방지</th>
            <td>
                <?php echo $captcha_html ?>
            </td>
        </tr>
        <?php } ?>
        </tbody>
        </table>
        <div class="btn_wrap btn_wrap_02">
            <ul class="left">
                <li><input type="submit" value="저장" class="btn_st01" accesskey="s" ></li>
            </ul>
        
            <ul class="right">
                <li><a href="./board.php?bo_table=<?php echo $bo_table ?>"  class="btn_cancel">취소</a></li>
            </ul>
        </div> <!-- //btn_wrap_02 -->       
    </form>
            </div> <!-- //article -->
        </div> <!-- //article_wrap -->
    </div> <!-- //content -->
</div> <!-- //sub_container -->
   
    <script>
    <?php if($write_min || $write_max) { ?>
    // 글자수 제한
    var char_min = parseInt(<?php echo $write_min; ?>); // 최소
    var char_max = parseInt(<?php echo $write_max; ?>); // 최대
    check_byte("wr_content", "char_count");
    $(function() {
        $("#wr_content").on("keyup", function() {
            check_byte("wr_content", "char_count");
        });
    });
    <?php } ?>
    function html_auto_br(obj)
    {
        if (obj.checked) {
            result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");
            if (result)
                obj.value = "html2";
            else
                obj.value = "html1";
        }
        else
            obj.value = "";
    }
    function fwrite_submit(f)
    {
        <?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함   ?>
        var subject = "";
        var content = "";
        $.ajax({
            url: g5_bbs_url+"/ajax.filter.php",
            type: "POST",
            data: {
                "subject": f.wr_subject.value,
                "content": f.wr_content.value
            },
            dataType: "json",
            async: false,
            cache: false,
            success: function(data, textStatus) {
                subject = data.subject;
                content = data.content;
            }
        });
        if (subject) {
            alert("제목에 금지단어('"+subject+"')가 포함되어있습니다");
            f.wr_subject.focus();
            return false;
        }
        if (content) {
            alert("내용에 금지단어('"+content+"')가 포함되어있습니다");
            if (typeof(ed_wr_content) != "undefined")
                ed_wr_content.returnFalse();
            else
                f.wr_content.focus();
            return false;
        }
        if (document.getElementById("char_count")) {
            if (char_min > 0 || char_max > 0) {
                var cnt = parseInt(check_byte("wr_content", "char_count"));
                if (char_min > 0 && char_min > cnt) {
                    alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");
                    return false;
                }
                else if (char_max > 0 && char_max < cnt) {
                    alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");
                    return false;
                }
            }
        }
        <?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함  ?>
        document.getElementById("btn_submit").disabled = "disabled";
        return true;
    }
    </script>
</section>
<!-- } 게시물 작성/수정 끝 -->

 

 

view.skin

[code]

<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?>


                <div class="article_wrap">

                <!-- <div class="sub_tit_wrap">
                    <h3>서브타이틀</h3>
                </div> -->

                <div class="article">

                    <div class="table_pc_wrap">
                        <table class="table_st01 table_blue" summary="게시판">
                            <caption>게시판</caption>
                            <colgroup>
                                <col width="110px"/>
                                <col width="*"/>
                                <col width="110px"/>
                                <col width="*"/>
                                <col width="110px"/>
                                <col width="*"/>
                            </colgroup>
                            <tbody>
                                <tr>
                                    <th>제목</th>
                                    <td colspan="5">
                                        <span class="txt_ell">
                                                <?php
                                        if ($category_name) echo $view['ca_name'].' | '; // 분류 출력 끝
                                        echo cut_str(get_text($view['wr_subject']), 70); // 글제목 출력
                                        ?>                            
                                        </span>
                                    </td>
                                </tr>
                                <tr>
                                    <th>작성자</th>
                                    <td><?php echo $view['name'] ?><?php if ($is_ip_view) { echo " ($ip)"; } ?></td>
                                    <th>작성일</th>
                                    <td><?php echo date("y-m-d H:i", strtotime($view['wr_datetime'])) ?></td>
                                    <th>조회수</th>
                                    <td><?php echo number_format($view['wr_hit']) ?>회</td>
                                </tr>
                                <tr>                                                            
                                    <?php
                                    if ($view['file']['count']) {
                                        $cnt = 0;
                                        for ($i=0; $i<count($view['file']); $i++) {
                                            //if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] && !$view['file'][$i]['view'])
                                                $cnt++;
                                        }
                                    }
                                     ?>
                                    <th>첨부파일</th>
                                    <td colspan="5">
                                        <ul class="ul_file">
                                 <?php if($cnt) { ?>                        
                                <?php
                                // 가변 파일
                                for ($i=0; $i<count($view['file']); $i++) {
                                    if (isset($view['file'][$i]['source']) && $view['file'][$i]['source']) {  // && !$view['file'][$i]['view']) {
                                 ?>
                                    <li>
                                        <a href="<?php echo $view['file'][$i]['href'];  ?>" >
                                      
                                            <strong><?php echo $view['file'][$i]['source'] ?></strong>
                                            <?php echo $view['file'][$i]['content'] ?> (<?php echo $view['file'][$i]['size'] ?>)
                                        </a>
        
                                    </li>
                                <?php
                                    }
                                }
                                 ?>
                               <?php } ?>
                                            
                                        </ul>
                                    </td>
                                </tr>
                            
                                <tr>
                                    <td colspan="6">
                                    
                                        <p><?php echo get_view_thumbnail($view['content']); ?></p>
                
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div> <!-- //table_pc_wrap -->

                    <div class="table_mobile_wrap">
                        <table class="table_st01 table_st01_write" summary="게시판">
                            <caption>게시판</caption>
                            <colgroup>
                                <col width="110px"/>
                                <col width="*"/>
                            </colgroup>                                                    
                            <tbody>
                                <tr>
                                    <th>제목</th>
                                    <td>
                                        <span class="txt_ell">
                                                <?php
                                        if ($category_name) echo $view['ca_name'].' | '; // 분류 출력 끝
                                        echo cut_str(get_text($view['wr_subject']), 70); // 글제목 출력
                                        ?>                            
                                        </span>
                                    </td>
                                </tr>
                                <tr>
                                    <th>작성자</th>
                                    <td><?php echo $view['name'] ?><?php if ($is_ip_view) { echo " ($ip)"; } ?></td>
                                </tr>
                                <tr>
                                    <th>작성일</th>
                                    <td><?php echo date("y-m-d H:i", strtotime($view['wr_datetime'])) ?></td>
                                    
                                </tr>
                                <tr>
                                    <th>조회수</th>
                                    <td><?php echo number_format($view['wr_hit']) ?>회</td>
                                </tr>
                                <tr>
                                    <?php
                                    if ($view['file']['count']) {
                                        $cnt = 0;
                                        for ($i=0; $i<count($view['file']); $i++) {
                                            //if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] && !$view['file'][$i]['view'])
                                                $cnt++;
                                        }
                                    }
                                     ?>
                                    <th>첨부파일</th>
                                    <td>
                                        <ul class="">
                                        <?php
                                        // 가변 파일
                                        for ($i=0; $i<count($view['file']); $i++) {
                                            if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] ) { //&& !$view['file'][$i]['view']) {
                                         ?>
                                            <li>
                                                <a href="<?php echo $view['file'][$i]['href'];  ?>" class="">
                                                    <img src="<?php echo $board_skin_url ?>/img/icon_file.gif" alt="첨부">
                                                    <strong><?php echo $view['file'][$i]['source'] ?></strong>
                                                    <?php echo $view['file'][$i]['content'] ?> (<?php echo $view['file'][$i]['size'] ?>)
                                                </a>
                                           <!--     <span class="bo_v_file_cnt"><?php echo $view['file'][$i]['download'] ?>회 다운로드</span>
                                                <span>DATE : <?php echo $view['file'][$i]['datetime'] ?></span> -->
                                        <?php
                                            }
                                        }
                                         ?>        

                                        </ul>
                                    </td>
                                </tr>
                                
                                <tr>
                                    <td colspan="2">
                                        <?php
        // 파일 출력, 비디오 파일
        $video_count = count($view['file']);
        if($video_count) {
            echo "<div>\n";

            for ($i=0; $i<=count($view['file']); $i++) {
                if ($view['file'][$i]['file']) {
                    echo '<video width="100%" height="100%" controls>';
                    echo '<source src="'.G5_URL."/data/file/".$bo_table."/".$view['file'][$i]['file'].'" type="video/mp4">';
                    echo '</video>';
                    echo '<br>';
                    echo '<br>';
                }
            }

            echo "</div>\n";
        }
        ?>
                                        <p><?php echo get_view_thumbnail($view['content']); ?></p>                
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div> <!-- //table_mobile_wrap -->

                    <div class="btn_wrap btn_wrap_02">            
         &

이 질문에 댓글 쓰기 :

답변 1

그누보드 5.4.2.4 최신버전에선 아무것도 안건들고 아래 소스 view.skin 에 넣고 첨부1에 첨부하니 잘나오는데요??

<?php
        // 파일 출력, 비디오 파일
        $video_count = count($view['file']);
        if($video_count) {
            echo "<div>\n";

            for ($i=0; $i<=count($view['file']); $i++) {
                if ($view['file'][$i]['file']) {
                    echo '<video width="100%" height="100%" controls>';
                    echo '<source src="'.G5_URL."/data/file/".$bo_table."/".$view['file'][$i]['file'].'" type="video/mp4">';
                    echo '</video>';
                    echo '<br>';
                    echo '<br>';
                }
            }

            echo "</div>\n";
        }
        ?>

답변을 작성하시기 전에 로그인 해주세요.
전체 2
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT