@blackbb

Как в Django обработать данные с формы в виде base64?

На сайте есть форма создания модели, в ней есть поле filefield. Пытаюсь сделать отображение фото и удаление их до отправки на сервер. все работает, но вот вопрос, как обработать строки base64 на стороне сервера? Или может кто подскажет более простое решение?
  • Вопрос задан
  • 203 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Во-первых, если не планируется работать с древними браузерами, не поддерживающими FileReader, то проще воспользоваться им:
var fileField = document.getElementById('image');
var preview = document.getElementById('preview');
fileField.addEventListener('change', function(event) {
    var reader = new FileReader();
    reader.onload = function(event) {
        preview.setAttribute('src', event.target.result);
    }
    reader.readAsDataURL(event.target.files[0]);
}, false);


Во-вторых, если уж кодировать изображение в base64 перед отправкой, то раскодировать на стороне сервера элементарно.
Для Python2:
with open("image.png", "wb") as fh:
    fh.write(request.POST['image'].decode('base64'))

Для Python3:
import base64
with open("image.png", "wb") as fh:
    fh.write(base64.decodestring(request.POST['image']))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы