여기에서 base64 변환으로 여러 파일 이미지를 만들었습니다. 제 요구 사항 사용자가 여러 이미지를 선택하고 제출 버튼을 클릭하면 값 (파일)을 가져와야한다는 것을 의미합니다. base64로 인코딩 여기에 문자열을 선택 이미지가 잘 작동하지만 언론은 "전화 버튼을 제출하면 내가이 오류Base64로 인코딩 된 이미지가 제출 버튼에서 작동하지 않습니다
$(document).ready(function(){
$("input[name=property_images]").change(function() {
var imgBase64Arr = [];
var files = this.files;
for (var i = 0; i < files.length; i++) {
(function(i){
var FR = new FileReader();
FR.onload = function(e) {
\t \t \t
\t \t \t var res = e.target.result ;
\t \t \t var arr1 = res.split(",");
\t \t \t var property_image = arr1[1] ;
imgBase64Arr.push(property_image);//adding base64 value to array
if(i === files.length -1)//after all files are porcessed
myFunction(imgBase64Arr)
};
FR.readAsDataURL(files[i]);
})(i);
}
});
});
function myFunction(imgBase64Arr){
console.log(imgBase64Arr);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<input type="file" name="property_images" multiple="multiple" />
<input type="button" value="submit" onclick="myFunction()">
당신은 아무것도 전달하지 않고 myFunction을 호출합니다! imgBase64Arr은 정의되지 않았으므로 undefined입니다. 두 번째로 수정하면 imgBase64Arr이 change 메서드에 정의되어 있으므로 외부에서 평가할 수 없습니다. – epascarello
함수에 인수를 제공하지 않습니다 :'myFunction()'. 'console.log (imgBase64Arr);을 수행 할 때''imgBase64Arr'은 정의되지 않았습니다. –
onchange myFunction (imgBase64Arr);처럼 이미지를 전달하는 동안; –