첨부파일 크기와 파일이름을 뽑아 오고 싶어서 몇일째 찾아보는중입니다

첨부파일 크기와 파일이름을 뽑아 오고 싶어서 몇일째 찾아보는중입니다

QA

첨부파일 크기와 파일이름을 뽑아 오고 싶어서 몇일째 찾아보는중입니다

본문

저는 비전공자 이고,

개발자도 아닙니다.

그래서 질문 자체도 이상하게 보이실지 모릅니다.

 

자바스크립트로 첨부파일 크기와 파일이름을 가져오고 싶은데..


<input type="file" class="form-control" id="bf_file_<?php echo $i+1 ?>" name="bf_file[]" value="사진선택">

여기서 id가 bf_file0, bf_file_1 이런식으로 생성될꺼라 생각되어서

bf_file_0 으로 테스트를 해봤습니다.

 


<script>
console.log(document.querySelectorAll('#bf_file_1').length);
console.log($("#bf_file").files[1].value);
console.log($("#bf_file").files[0].value);
</script>

등등 헤아리기 힘들만큼 많이 시도해 봤지만 다 안되네요.

제가 접근해야되는 방향을 알려주세요.

 

개발자가 되고 싶은 생각은 없습니다.

(배워서 그쪽으로 나가기엔 너무 나이를 먹었습니다.)

 

쉽게 접근 할수있는 방법을 알려주세요.

감사합니다.

이 질문에 댓글 쓰기 :

답변 2


<script>
inputElement<?php echo $i+1 ?> = document.getElementById('bf_file_<?php echo $i+1 ?>');
labelElement<?php echo $i+1 ?> = document.getElementById('file-name_<?php echo $i+1 ?>');
inputElement<?php echo $i+1 ?>.onchange = function(event) {
var path = inputElement<?php echo $i+1 ?>.value;
labelElement<?php echo $i+1 ?>.innerHTML = path.split(/(\\|\/)/g).pop();
}
</script>

ex)


    <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 id="fa_<?php echo $i+1 ?>" class="fa fa-folder-open" aria-hidden="true"></i><span class="sound_only"> 파일 #<?php echo $i+1 ?></span></label>
            <?php if ($file[$i]['file']) echo "<span style=cursor:pointer onclick=copyMode('".$file[$i]['path'].'/'.$file[$i]['file']."','파일주소가')>";?>
            <label style="margin-left:40px;cursor:pointer" title="<?php if($file[$i]['file']){echo $file[$i]['path']."/".$file[$i]['file'].' 클릭 복사';}?>">
            <?php
            $file = get_file($bo_table, $wr_id);
            $image = urlencode($file[$i]['file']);
            $image_path = G5_DATA_PATH.'/file/'.$bo_table;
            $image_url = G5_DATA_URL.'/file/'.$bo_table;
            if (preg_match("/\.(gif|jpg|jpeg|png|webp)$/i", $image)) {
            $thumb = thumbnail($image, $image_path , $image_path , 38, 28, false, true);
            $image_content = $image_url.'/'.$thumb;
              } else {
              $pattern = "#.+\.(?P<ftype>[a-z]{3})#i";
              preg_match($pattern, $file[$i]['source'], $match);
              if($match['ftype']){
                $image_content = $board_skin_url.'/img/'.$match['ftype'].'.gif';
                } else {
                $image_content = $board_skin_url.'/img/noimage.png';
                }
            }
            echo "<img class='img_preview".($i+1)."' style='width:38px;height:28px;opacity:.8' src='".$image_content."'>";
            ?></label><?php echo "</span>";?>
            <input type="radio" class="radio<?php echo $i+1 ?>" id="radio_<?php echo $i+1 ?>" name="wr_6" value="<?php echo $i ?>" <?php if ($write['wr_6'] == $i&&$write['wr_6'] >= '0') echo "checked";if(!preg_match("/\.(gif|jpg|jpeg|png|webp)$/i", $image))echo 'disabled';?> title="select list view"> <label for="<?php echo $i ?>" title="list file_<?php echo $i+1 ?>" class="homepage"></label>
            <input type="button" value="file 찿기" id="ba_file_<?php echo $i+1 ?>" onclick="document.getElementById('bf_file_<?php echo $i+1 ?>').click()" title="Attachments <?php echo $i+1 ?> : Volume <?php echo $upload_max_filesize ?> Only the following can be uploaded" class="frm_file ">
            <label for="<?php echo $i ?>" id="file-name_<?php echo $i+1 ?>" class="homepage">선택된 file 없음</label>
            <input type="file" name="bf_file[]" style="display:none" id="bf_file_<?php echo $i+1 ?>" title="파일첨부 <?php echo $i+1 ?> : 용량 <?php echo $upload_max_filesize ?> 이하만 업로드 가능" class="frm_file ">
            <script>
            inputElement<?php echo $i+1 ?> = document.getElementById('bf_file_<?php echo $i+1 ?>');
            labelElement<?php echo $i+1 ?> = document.getElementById('file-name_<?php echo $i+1 ?>');
            inputElement<?php echo $i+1 ?>.onchange = function(event) {
            var path = inputElement<?php echo $i+1 ?>.value;
            labelElement<?php echo $i+1 ?>.innerHTML = path.split(/(\\|\/)/g).pop();
            }
            </script>
        </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 file_wr" 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 class="file_wr" for="bf_file_del<?php echo $i ?>"><a href="<?php echo $file[$i]['href']?>"><?php echo $file[$i]['source'].'('.$file[$i]['size'].')';?></a> 파일 삭제</label>
        </span>
        <?php } ?>
    </div>

답변 감사합니다.
저는 기존 소스를 유지한 상태에서 첨부파일의 속성 (이름, 용량 등)을 얻기 위한 질문이였는데
통채로 소스를 짜주셨네요.

제 실력으로 주신 소스 파악하는 데만 몇달이 걸리것같습니다.ㅠㅠㅠㅠ


<input type="file" class="form-control" id="bf_file_<?php echo $i+1 ?>" name="bf_file[]" value="사진선택" onchange="showFileInfo(this)">
<p id="fileInfo"></p>
<script>
function showFileInfo(input) {
    if (input.files && input.files[0]) {
        var file = input.files[0];
        var fileSize = file.size; // 파일 크기 (바이트)
        var fileName = file.name; // 파일 이름

        // 파일 크기를 메가바이트로 변환 (1MB = 1024 * 1024 바이트)
        var fileSizeMB = fileSize / (1024 * 1024);

        // 파일 정보를 화면에 출력
        document.getElementById('fileInfo').innerHTML = "파일 이름: " + fileName + "<br>파일 크기: " + fileSizeMB.toFixed(2) + "MB";
    }
}
</script>

이 코드를 참고 하세요.

<input type="file" class="form-control" id="bf_file_<?php echo $i+1 ?>" name="bf_file[]" value="사진선택">

여기보면 id="bf_file_<?php echo $i+1 ?>" 아이디값을 별도로 주셔는데 이뉴가 뭔가요 ? 파일을 여러게 연속 불러오기 위해서 인가요?

그냥 클래스 안에 다 정의 하시고 스크립트 처리 하세요

<input type="file" class="form-control bf_file" name="bf_file[]" value="사진선택">

웅프님 답변 감사합니다.
제가 짠 소스가 아니라. 이윰빌더 소스 입니다.

기존 소스는 그대로 둔상태로 자바스크립트에서 가져오는 방법으로 해결하고 싶습니다.
id="bf_file_<?php echo $i+1 ?> 그대로 두고
자바스크립트에서 가져오는건 힘들까요?

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

회원로그인

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