0
ユーザーからの入力イメージを受け取り、そのファイルがどこにあるかに関するパスを提供するdjangoアプリケーションを作成しました。このイメージをHTMLページにレンダリングします。すべてのコメント/アイデアアップロードされたファイルをdjangoでレンダリングするには?
ユーザーからの入力イメージを受け取り、そのファイルがどこにあるかに関するパスを提供するdjangoアプリケーションを作成しました。このイメージをHTMLページにレンダリングします。すべてのコメント/アイデアアップロードされたファイルをdjangoでレンダリングするには?
非常に簡単です。あなたは実際には、応答を待つ必要はありません。あなたは、FileReaderのを使用することができます。 https://developer.mozilla.org/ru/docs/Web/API/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);
ことです。
もう1つの方法は、AJAXレスポンスを待ってイメージパスをimg-elementに追加することですが、ユーザーが既にドライブにファイルをダウンロードしている間にファイルをダウンロードさせてしまうため、あまり良くありません。
Filereader.Iは画像を保存するためにFileSystemStorageを使用しています。 –
これはクライアント側で、ジャンゴ側ではありません。このコードは、アップロードされる前の画像を表示します。 FileReaderは、ブラウザに含まれるWebAPIの一部です。 img-elementのsrc属性に表示できるbase64文字列として画像を取得する簡単な方法を提供します。 – vadimka