如何在 Struts 2 中将音频 blob(数据)文件从 JavaScript 发送到 Java 服务器操作
How to send an audio blob (data) file from JavaScript to Java server action in Struts 2?
我们正在使用Struts2应用程序,我想将JavaScript中录制的音频blob文件发送到Java服务器(Action
类)。我正在使用以下 Ajax 代码发送 blob 文件。
JavaScript:
var xhr=new XMLHttpRequest();
xhr.onload=function(e) {
if(this.readyState === 4) {
console.log("Server returned: ",e.target.responseText);
}
};
var fd=new FormData();
fd.append("filename.wav",blob);
xhr.open("POST","getAudio",true);
xhr.send(fd);
我在Action
课上的方法是getAudio()
。因此,由于它是一个数据文件,我如何在我的方法中接收它并建议适当的XML配置来接收相同的文件。
在 Struts2 中,您可以为发送文件时将调用的操作创建 xml 配置。
<action name="getAudio" class="com.example.UploadAction" method="upload">
<result>success.jsp</result>
</action>
该类应包括映射到操作的方法以及文件及其名称的属性。
public class UploadAction extends ActionSupport {
private String name;
private File file;
//getter and setter
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String upload() throws Exception{
Files.move(file.toPath(),Paths.get("C:''tmp''"+name), StandardCopyOption.REPLACE_EXISTING);
return SUCCESS;
}
}
现在您应该将属性放在表单数据对象中
var xhr=new XMLHttpRequest();
xhr.onload=function(e) {
if(this.readyState === 4) {
console.log("Server returned: ",e.target.responseText);
}
};
var fd=new FormData();
fd.append("name", "filename.wav");
fd.append("file", blob);
xhr.open("POST","getAudio",true);
xhr.send(fd);
重要的是要知道,为了能够在服务器端处理
FormData
形式,它与使用编码multipart/form-data
发送的常规形式相同。
这对于 Struts2 fileUpload
拦截器来说很重要,因为它能够在调用操作时处理它。
为了进一步学习,我建议您阅读如何异步上传文件?。
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- 如何包含特定于每个视图angularjs的javascript文件
- 将数据从javascript文件导入VB.Net页面
- Chrome加载旧版本的Javascript文件
- 操作员”;新的“;根据我想在几个JavaScript文件中使用的类,在JavaScript中使用
- gulp-if-javascript文件,但不在gulp-useref的特定目录中
- 如何在visualstudio中调试web api时编辑javascript文件
- 关于引入外部javascript文件的问题&css通过https
- 有没有办法在tinymceiframe中加载一个外部javascript文件
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 在一个javascript文件中为整个网站创建标签
- 如何在定义js文件后为外部javascript文件设置变量
- 显示IIS上javascript文件(SOAP请求)的XML响应
- ResolveUrl没有'我似乎不适合当链接到具有动态虚拟目录的外部javascript文件时
- 我应该将MVC视图特定的javascript文件放在哪个文件夹中
- Django'支持Javascript文件中的翻译
- MVC正在忽略我的Javascript文件
- 为什么不't我的ruby代码与javascript文件一起插入
- 在Javascript文件中获取PHP变量
- 如何在Windows中将Javascript文件编译成二进制文件