2017-10-28 2 views
0

사용자가 업로드 할 이미지를 선택할 수있는 입력 필드가 있으며 클라우드 스토리지로 전송해야합니다. 문제는 그들이 선택한 파일을받는 방법을 모른다는 것입니다. this, this, this 등 많은 질문을 보았습니다. this과 같은 대부분의 질문은 업로드하기 전에 이미지 미리보기를 요구하고 있습니다. 이미지를 미리 볼 필요가 없다고 생각합니다. 그냥 업로드하고 싶습니다. 어떻게해야합니까? 다음은 현재 코드입니다.입력란에서 firebase cloud storage에 이미지를 업로드하는 방법은 무엇입니까?

function addImage() { 
    $("#addImage").append('\ 
    <input type="file" id="image" accept="image/*">\ 
    <button type="submit">ok</button>\ 
    <button onclick="cancelAddImage()">cancel</button>'); 
    $("#addImage").submit(function() { 
    var image = $("#image").files; 
    console.log(image); 
    storage.ref("images").put(image).then(function(snapshot) { 
     console.log('Uploaded a file!'); 
    }); 
    }); 
} 

console.log()는 "undefined"를 제공합니다. 나는 또한 .files; 대신에 .files[0]을 시도해 보았습니다.

답변

0

html 코드에서 입력 필드를 id로 지정합니다. 카메라에서 사진 업로드하려면 예를 들어, : 당신이 필요 물론

let storageRef = firebase.storage().ref('photos/myPictureName') 
    let fileUpload = document.getElementById("cameraInput") 

    fileUpload.addEventListener('change', function(evt) { 
     let firstFile = evt.target.files[0] // upload the first file only 
     let uploadTask = storageRef.put(firstFile) 
    }) 

: 당신의 JS 코드에서 다음

<input type="file" accept="image/*" capture="camera" id="cameraInput"> 

을, 당신은이 요소에 이벤트를 변경할들을 것이다 어떻게 든 Firebase js 라이브러리를 포함 시켰습니다.

js의 이전 버전을 쓰는 경우 let을 var로 바꾸고 add를해야합니다. 라인 끝에서.

관련 문제