В настоящее время я внедряю веб-приложение, и я хочу, чтобы пользователи записывали некоторый звук, а затем я хочу кнопку отправки, чтобы ПОСТ mp3 файл, записанный на сервер.
Основной маршрут моего сервера (Flask) '/'
ожидает запроса POST:
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == "GET":
return render_template('index.html', request="GET")
else:
print request.files
print request.form
print request.form['file']
if 'file' not in request.files:
flash('No file part')
return redirect(request.url)
file = request.files['file']
if file.filename == '':
flash('No selected file')
return redirect(request.url)
if file and allowed_file(file.filename):
handle_file(file)
return render_template('index.html', request="POST")
Вот мой код JS:
Здесь есть два основных вопроса:
1) Когда я загружаю mp3 файл после записи, он не может быть открыт медиаплеером. Кажется, я делаю что-то неправильно, просто записывая звук.
2) Когда я print request.form
на моем сервере после получения запроса POST, я получаю только это:
ImmutableMultiDict([('file', u'')])
И print request.form['file']
возвращает пустую строку.
Почему это происходит? Что-то не так с запросом POST.
Наконец, я хочу иметь возможность декодировать строку, которую я отправляю, чтобы преобразовать обратно в mp3. Как это сделать?
Примечание: Ничто из этого не должно оставаться прежним. Задача состоит в том, чтобы записать звук, а затем отправить его на сервер. Если есть более эффективный способ сделать это, любые советы приветствуются. Кроме того, мне все равно, будет ли файл wav или mp3.