2016-02-05 67 views
0

我们正试图使用​​从UI端发送我们的音频文件,下面的代码发送音频文件/ blob从UI到Servlet以保存在服务器上。

var url = (window.URL || window.webkitURL).createObjectURL(blob); 
var link = document.getElementById("save"); 
link.href = url; 
link.download = filename || 'output.wav'; 

var fd = new FormData(); 
    fd.append('fname', 'sample1.wav'); 
    fd.append('data', blob); 
    $.ajax({ 
     type: 'POST', 
     url: 'AudioToText', 
     data: fd, 
     processData: false, 
     contentType: "audio/wav" 
    }); 

但是,我们无法处理,在servlet的。任何人都可以用Javascript代码帮助我将音频文件发送到servlet和servlet代码,以将该音频保存在servlet中。提前致谢。

回答

0

好日子

您可以使用插件文件上传

https://github.com/blueimp/jQuery-File-Upload

有相当完整的指令如何与春天和Ajax使用它:

http://krams915.blogspot.ru/2012/06/file-upload-with-spring-and-jquery-part_2793.html(从这个插件的维基)

快速教程(不要忘记包含插件)
HTML代码:

<label>Name</label> 
    <form name="fileupload" method="POST" class="newSongUpload" action="upload.new.song" id="uploadNewFile"> 
    <!--in action - your url --!> 
        <input type="text" name="songName"> 
         <i class="glyphicon glyphicon-plus"></i> 
          <input type="file" name="files" id="upload-new-document" accept="your accept here"> 


     </form> 
</div> 

JS代码:

$(function() { 
      $('.newSongUpload').fileupload({ 
       multipart: true, 
       dataType: 'json'//actually this enough to get plugin works 
       //You can write what will happen after loading in done:yourcode and what you accept in accept:your types 
      }) 
     }); 

的Java Spring代码:

@RequestMapping(value = {"/upload.new.song"}, method = RequestMethod.POST) 
public @ResponseBody HashMap<String, String> uploadNewSong(HttpServletResponse response, 
           @RequestParam("file") MultipartFile file){ 
//Your code with file here you can save it to the database or to file system with file.getBytes() function 
} 

我希望它会帮助你

+0

感谢大家的帮助。现在我可以从HTML发送文件并将其保存在服务器中。但是我有一个新的查询,我没有任何形式,我需要使用java脚本代码调用这个servlet。我只有那里可用的blob文件。 我正在添加blob可用的js函数,请让我知道如何将它发送给servlet? – user3398439

+0

Recorder.setupDownload =函数(blob,文件名){ //代码保存文件在UI \t var url =(window.URL || window.webkitURL).createObjectURL(blob); var link = document.getElementById(“save”); link.href = url; link.download = filename || 'output.wav'; link.click(); – user3398439

+0

http://stackoverflow.com/questions/13333378/how-can-javascript-upload-a-blob 而不是使用upload.php使用servlet 看来他们将blob转换为base64,并在服务器端转换回 –

0

如果你要处理在Servlet中上传的文件,文件应该作为“multipart/form”的请求属性发送-data“,它应该是POST方法

请参阅Oracle提供的示例。

参考:http://docs.oracle.com/javaee/6/tutorial/doc/glraq.html

+0

所以,我必须使用这个HTML表单代码发送一个文件到servlet? ..现在有使用JavaScript代码发送文件到servlet吗? – user3398439

相关问题