2016-10-04 2 views
0

양식 제출시 새로 만든 'formData'에 입력 파일의 선택된 파일을 넣으려고합니다. 아래에 제가 시도한 내용이 있습니다. 입력 파일에서 선택한 파일을 가져옵니다.

먼저 나는 형태

<form action="/upload.php"> 
    <fieldset> 
     <input type="file" name="file"> 
     <input type="text" name="full_name"> 
    </fieldset> 
    <button>SEND</button> 
</form> 

다음 스크립트

$(document).ready(function(){ 
    $("form").submit(function(e){ 
     e.preventDefault(); 
     var dis = $(this),fdata = new FormData(); 
     fdata.append('file',dis.find('input[type="file"]').files[0]); 
     fdata.append('full_name',dis.find('input[name="full_name"]').val()); 
    }); 
}); 

을 가지고 있지만, 아이디어, 나에게 어떤 도움을이 오류

Uncaught TypeError: Cannot read property '0' of undefined

주세요 준다?

+1

fdata.append ('파일'dis.find ('입력 [TYPE = "파일"]) [0] .files [0])를 사용하여; –

+0

ajax를 사용하여 파일을 업로드 하시겠습니까, 아니면 선택한 이미지를 페이지에 표시하고 싶습니까? –

답변

1

를 제거하려면 다음

fdata = new FormData($(this)[0]); 

을 시도하고 그들이 files 재산 따라서 당신은을 받고이없는 입력으로 폼 요소를 수용 오류, 기본 DOM 요소를 가져와 속성에 액세스해야합니다. 그래서

dis.find('input[type="file"]')[0].files[0] 

대신

dis.find('input[type="file"]').files[0] 
1

FormData는

dis.find('input[type="file"]') 반환 jQuery를 객체 때문에 APPEND

+1

왜 단순하지 않은'새로운 FormData (this)'인가? – Satpal

+0

@Satpal도 작동합니다. – madalinivascu

관련 문제