2016-10-01 2 views

답변

0

매우 간단합니다. 당신은 실제로 응답을 기다릴 필요가 없습니다. https://developer.mozilla.org/ru/docs/Web/API/FileReader

아이디어는 다음과 같습니다 :

  • 은을 FileReader를 base64로 형식

  • 표시 문자열을 만들기 변경

    1. 핸들 입력 [유형 = '파일'] 당신은을 FileReader를 사용할 수 있습니다 in img [src =]

      <input type="file" accept="image/jpeg,image/png,image/gif" id="img_input"> 
      
    2. ,210

    기능 정의 :이

    function handleFile(e) { 
        var self = this; 
        var reader = new FileReader(); 
        var file = e.target.files[0]; 
    
        reader.onload = function(upload) { 
         var currentImageData = upload.target.result; 
         var imgElem = document.createElement('img'); 
         imgElem.setAttribute('src', currentImageData); 
         document.body.appendChild(imgElem); 
        } 
    
        reader.readAsDataURL(file); 
    } 
    
    document.querySelector('#img_input').addEventListener('change', handleFile); 
    

    입니다.

    다른 방법은 AJAX 응답을 기다리고 img-element에 이미지 경로를 추가하는 것입니다.하지만 이미 드라이브에있는 동안 파일을 다운로드하도록 사용자를 만들고 있기 때문에 너무 좋지 않습니다.

  • +0

    당신은 Filereader가 무엇인지 상세하게 설명 할 수 있습니다. 이미지를 저장하기 위해 FileSystemStorage를 사용했습니다. –

    +0

    그것은 클라이언트 쪽, 장고 쪽이 아닙니다. 이 코드는 이미지를 업로드하기 전에 보여줍니다. FileReader는 브라우저에 포함 된 WebAPI의 일부입니다. img-element의 src-attribute에서 보여줄 수있는 base64-string으로 이미지를 얻는 쉬운 방법을 제공합니다. – vadimka

    관련 문제