3

私のフォームは、XMLHttpRequest を使用して POST 要求としてビデオとオーディオのブロブを送信しています

サーバー側の Spring コントローラーで -- HTTP リクエストを取得し、これら 2 つの BLOB を渡し、それを 2 つのファイルとしてハードディスクに保存したいと考えています。

誰かがこれについて私を助けることができますか?ありがとう!

ここに私の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));
}
4

0 に答える 0