Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaSpring将blob上传到服务器端磁盘,这些blob使用XMLHttpRequestFormData发送_Java_Javascript_Spring Mvc_Xmlhttprequest_Blob - Fatal编程技术网

使用JavaSpring将blob上传到服务器端磁盘,这些blob使用XMLHttpRequestFormData发送

使用JavaSpring将blob上传到服务器端磁盘,这些blob使用XMLHttpRequestFormData发送,java,javascript,spring-mvc,xmlhttprequest,blob,Java,Javascript,Spring Mvc,Xmlhttprequest,Blob,我的表单使用XMLHttpRequest发送视频和音频blob作为POST请求 在服务器端Spring控制器——我想检索HTTP请求并传递这两个blob,并将其作为两个文件保存到硬盘 有人能帮我吗。谢谢 这是我的JS代码 function sendAudioVideoBlobs(){ console.log("Sending blobs!"); var recordForm = new FormData(); recordForm.append("video", v

我的表单使用XMLHttpRequest发送视频和音频blob作为POST请求

在服务器端Spring控制器——我想检索HTTP请求并传递这两个blob,并将其作为两个文件保存到硬盘

有人能帮我吗。谢谢

这是我的JS代码

 function sendAudioVideoBlobs(){

    console.log("Sending blobs!");
    var recordForm = new FormData();

    recordForm.append("video", videoBlob);
    recordForm.append("audio", audioBlob);

    var oReq = new XMLHttpRequest();

    formSubmitURL = "http://localhost:8088/openmrs/module/patientnarratives/webRtcMedia.form";
    console.log(formSubmitURL);

    oReq.open("POST", formSubmitURL);
    oReq.send(recordForm);

}
控制器类

@Controller
public class WebRtcMediaStreamController {

private String returnUrl;
public final static String FORM_PATH = "/module/patientnarratives/webRtcMedia.form";
protected final Log log = LogFactory.getLog(getClass());

private String audioUrl = "/home/audioFile1.wav";
private String videoUrl = "/home/videoFile1.webm";

@RequestMapping(FORM_PATH)
public ModelAndView handleRequest(HttpServletRequest request) throws Exception {

    Integer encId = Integer.parseInt(request.getParameter("textEncID"));

    if (request instanceof MultipartHttpServletRequest) {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        MultipartFile videofile             = (MultipartFile) multipartRequest.getFile("video");
        MultipartFile audiofile             = (MultipartFile) multipartRequest.getFile("audio");

        byte[] videoData = videofile.getBytes();
        byte[] audioData = audiofile.getBytes();

        if (!videofile.isEmpty()) {
            if (videofile.getSize() > 0) {  // limit video length or size.

                OutputStream out1 = new FileOutputStream(new File(videoUrl));
                out1.write(videoData);
                out1.close();

                OutputStream out2 = new FileOutputStream(new File(audioUrl));
                out2.write(audioData);
                out2.close();
            }
        }
    }

    returnUrl = request.getContextPath() + "/module/patientnarratives/patientNarrativesForm.form";
    return new ModelAndView(new RedirectView(returnUrl));
}

实际问题是什么?这个代码不起作用吗?spring还有用于处理文件/二进制上传的注释