0
사용자로부터 입력 이미지를 가져 와서 파일이있는 곳의 경로를 제공하는 django 앱을 만들었습니다.이 이미지를 HTML 페이지에 렌더링하고 싶습니다. 모든 의견/아이디어django에서 업로드 된 파일을 렌더링하는 방법은 무엇입니까?
사용자로부터 입력 이미지를 가져 와서 파일이있는 곳의 경로를 제공하는 django 앱을 만들었습니다.이 이미지를 HTML 페이지에 렌더링하고 싶습니다. 모든 의견/아이디어django에서 업로드 된 파일을 렌더링하는 방법은 무엇입니까?
매우 간단합니다. 당신은 실제로 응답을 기다릴 필요가 없습니다. https://developer.mozilla.org/ru/docs/Web/API/FileReader
아이디어는 다음과 같습니다 :
은을 FileReader를 base64로 형식
표시 문자열을 만들기 변경
핸들 입력 [유형 = '파일'] 당신은을 FileReader를 사용할 수 있습니다 in img [src =]
<input type="file" accept="image/jpeg,image/png,image/gif" id="img_input">
기능 정의 :이
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에 이미지 경로를 추가하는 것입니다.하지만 이미 드라이브에있는 동안 파일을 다운로드하도록 사용자를 만들고 있기 때문에 너무 좋지 않습니다.
당신은 Filereader가 무엇인지 상세하게 설명 할 수 있습니다. 이미지를 저장하기 위해 FileSystemStorage를 사용했습니다. –
그것은 클라이언트 쪽, 장고 쪽이 아닙니다. 이 코드는 이미지를 업로드하기 전에 보여줍니다. FileReader는 브라우저에 포함 된 WebAPI의 일부입니다. img-element의 src-attribute에서 보여줄 수있는 base64-string으로 이미지를 얻는 쉬운 방법을 제공합니다. – vadimka