채택완료

jquery 파일첨부관련 질문있습니다!

2023-07-05 (수) 10:17:31 4,720

파일찾기 버튼을 눌러서 파일들을 1개 또는 여러개 첨부하면 placeholder를 첨부한 파일명으로 교체시키고싶어요

2040025585_1688518952.9478.png

2040025585_1688518983.4223.png

Copy
$("#file").on('change',function(){

        let files=$('input[name="file_name"]')[0].files;

        let fl;

        for(let i=0; i<files.length; i++){

            let fl = files[i].name;

            console.log("파일명은 : " + fl);

        }

        console.log("files의 변수타입 : " + typeof(files));

        console.log(files);

    })

2040025585_1688519687.307.png

위 script로 확인해보면 제가 생각했을때는

1. 파일첨부가 확인되면 첨부된 파일들의 name을 변수에 저장한다

 - 파일들의 타입은 object로 저장된다

 - object안에 있는 name의 값을 string형 문자열로 나열하여 다른 변수에 저장한다

2. 변수에 저장된 파일 name들로 placeholder를 바꾼다. 

이렇게 할 수 있지 않을까? 생각은 하는데

아직 초보라 잘 모르겠습니다 알려주세요....

답변 1개 / 댓글 1개

채택된 답변
+20 포인트
Copy
<style>
.upload-name { width: 40em; font-size: 0.9em; padding: 0.4em; }
.file-search { background-color: #36a0e2; color: #fff; font-size: 0.9em; padding: 0.4em; }
#file { visibility: hidden; }
</style>

<script src="http://code.jquery.com/jquery-latest.min.js"></script>

<div class="fileBox">
    <input class="upload-name" value="첨부파일" placeholder="첨부파일" readonly>
    <label for="file" class="file-search">파일찾기</label>
    <input type="file" name="file_name" id="file" multiple>
</div>

<script>
$("#file").on('change',function(){
    let fval_default = '첨부파일';
    $('.upload-name').val(fval_default);
    let fval = fval_default;

    let files=$('input[name="file_name"]')[0].files;
    let fl;
    for(let i=0; i<files.length; i++){
        let fl = files[i].name;
        console.log("파일명은 : " + fl);
        
        if (fval == fval_default) {
            fval = fl;
        } else {
            fval += ',' + fl;
        }
        $('.upload-name').val(fval);
    }
    console.log("files의 변수타입 : " + typeof(files));
    console.log(files);
});
</script>

답변에 대한 댓글 1개

2023-07-05 (수) 12:38:05
이것때문에 하루종일 고생했는데 알려주셔서 정말 감사합니다!!

답변을 작성하려면 로그인이 필요합니다.