PavelDuk
@PavelDuk
Python Dev

Как «связать» blob аудио файл, полученный в результате записи аудио и HTML(input file) форму?

Мужики, помогите советом.
Пилю Django приложение которое принимает данные(фото+текстовое_описание+голосовое_описание+музыка) и отдает на выход красивую картинку, которая поет : )

Суть проблемы в том чтобы записать голос на страничке при помощи веб камеры и отправить на сервер объект аудио в стандартной джанго форме.

Сделать это можно двумя способами(уверен что есть еще, просто о них не знаю). Либо при помощи Ajax'а либо каким-то образом(тут то мне и нужна помощь) запихнуть аудио-объект в стандартную джанго форму(file input).

Так вот.
В результате записи голоса генерируется следующий код:
<audio controls="" src="blob:http://127.0.0.1:8000/c3b9e9ef-f81f-47e9-9001-ed92a018b4c5" id="recorded_audio"></audio>


Пытаюсь вытащить данные(атрибут src) из элемента audio и "прикрепить" объект к автоматически сгенерированной форме джанги:
<input id="id_voice_description" name="voice_description" type="file" required="">


Тут и случается затык - не знаю как правильно это сделать(если это вообще возможно).

Пробую сделать это вот так:
var voice_description_link = $("#recorded_audio").attr("src");
$("#id_voice_description").val(voice_description_link);


Получаю следующую ошибку:
jquery-3.2.1.min.js:4 Uncaught DOMException: Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename, which may only be programmatically set to the empty string.


Подскажите как "связать" blob аудио файл, полученный в результате записи аудио и HTML форму, сгенерированную джангой.

P.S
Для записи голоса использую вот это решение(потому что самое простое): Демо,GitHub .

P.P.S
Понимаю что данный вызов можно решить при помощи FormData и Ajax, но на данном этапе моего развития эти решения кажутся мне сложными и 'грязными', хочу оставить классическую форму джанги(хотя может быть дело в том, что я первый раз столкнулся с Ajax ). Правда, если все же проблема не будет решена - придется, видимо, подстраиваться.
  • Вопрос задан
  • 386 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Вы не можете скриптами загружать данные в input type="file", он доступен только для чтения. Придется использовать AJAX.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
17 июл. 2019, в 19:35
100000 руб./за проект
17 июл. 2019, в 19:28
800 руб./за проект