首页 文章

JS HTML5:通过HTML表单上传音频blob

提问于
浏览
1

我想知道我是否可以使用javascript / jQuery创建音频blob的HTML文件输入 . 我在线录音,并希望在用户按表单提交后将录音与其他HTML表单输入一起发布 .

编辑:Elaborating,我有一个存储在会话缓存中的音频blob . 我还有一个HTML表单,其中包含已保存值的文本和文件输入 . 我想将blob绑定或合并到表单中,以便在提交HTML表单时将其POST .

我可以从现有的HTML表单创建一个formdata,并将blob作为键/值附加,但这看起来很“脏” . 我现在正在使用它,但如果有人知道如何将缓存blob与现有HTML表单合并/绑定,那将会很棒 .

任何帮助都会很棒,谢谢!

2 回答

  • 1

    你所要做的就是将blob转换为ArrayBuffer并发布,你可以在这里看到如何转换blob:

    How to go from Blob to ArrayBuffer

    注意:您也可以将其发布为blob,但随后您的服务器需要知道如何处理它 .

    至于发送blob或ArrayBuffer,请看:

    https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data

    干杯,希望它有所帮助 .

  • 1

    这是上传blob的一种方法(另外,这使用ajaxForm和iframe设置为true,原因我不会进入但可能与您的情况相关) .

    if (audioRecBlob) {
                var reader = new FileReader();
                reader.onload = function(event){
                    $('#audioData').remove();
                    var audioData = $('<input type="hidden" id="audioData" name="audioData">');
                    audioData.val( event.target.result );
                    $('#yourForm').append( audioData );
    
                    realSubmit();
                };
                reader.readAsDataURL(audioRecBlob);
            } else {
                realSubmit();
            }
    

相关问题