Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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
使用XMLHttpRequest将文件从Javascript前端上载到JAVA后端_Javascript_Java_Post_Xmlhttprequest - Fatal编程技术网

使用XMLHttpRequest将文件从Javascript前端上载到JAVA后端

使用XMLHttpRequest将文件从Javascript前端上载到JAVA后端,javascript,java,post,xmlhttprequest,Javascript,Java,Post,Xmlhttprequest,作为带有JAVA后端应用程序的Javascript(SAPUI5)的一部分,我实现了一个“联系我们”表单,我希望用户能够将文件上传到此表单并发送它 然后,我想将这些文件与表单中发送的信息一起发送给管理员电子邮件。我面临的问题是,我得到了一份工作 415来自JAVA API的错误响应,尽管我似乎正在设置发送的正确内容类型 我现时的守则如下: Javascript: sendContactRequest: function(){ var contactUsModel = th

作为带有JAVA后端应用程序的Javascript(SAPUI5)的一部分,我实现了一个“联系我们”表单,我希望用户能够将文件上传到此表单并发送它

然后,我想将这些文件与表单中发送的信息一起发送给管理员电子邮件。我面临的问题是,我得到了一份工作 415来自JAVA API的错误响应,尽管我似乎正在设置发送的正确内容类型

我现时的守则如下: Javascript:

sendContactRequest: function(){
            var contactUsModel = this.getView().getModel("contactFormModel");
            var name = contactUsModel.getProperty("/name");
            var email = contactUsModel.getProperty("/email");
            var subject = contactUsModel.getProperty("/subject");
            var description = contactUsModel.getProperty("/description");
            var formData = new FormData();
            formData.append("file", contactUsModel.getProperty("/attachments")[0]);
            
            var url = formatter.getPrefixUrl("/Urisite/contactapi" + name + "/" + email + "/" + subject + "/" + description + "/1",this._oSitename);
            var xhr = new XMLHttpRequest();
            xhr.open('POST', url);
            xhr.setRequestHeader("Content-Type","multipart/form-data");
            xhr.setRequestHeader("x-csrf-token", this.csrfToken);
            
            xhr.send(formData);
            xhr.onreadystatechange = function(){
                if(xhr.readyState === 4){
                  var i = 8;
                }
            };
}
爪哇:

@POST
@路径(“/{name}/{email}/{subject}/{description}/{attachmentCount}”)
@使用(MediaType.MULTIPART\u FORM\u数据)
公共响应getNotificationByUser(@Context SecurityContext sc,
@PathParam(“名称”)字符串名称,
@PathParam(“电子邮件”)字符串电子邮件,
@PathParam(“主题”)字符串主题,
@PathParam(“描述”)字符串描述,
@PathParam(“attachmentCount”)整数attachmentCount,
HttpServletRequest请求,
HttpServletResponse(响应){
试一试{
列表附件=新的ArrayList();
如果(附件计数>0){
Part filePart=request.getPart(“文件”);
InputStream filecontent=filePart.getInputStream();
附件。添加(文件内容);
}
EmailUtils.sendContactUsEmail(姓名、电子邮件、主题、描述、附件);
Gson Gson=新的Gson();
字符串json=gson.toJson(“”);
返回Response.ok().entity(json.build();
}
捕获(例外e){
返回Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).build();
}
}
任何帮助都将不胜感激

@POST
    @Path("/{name}/{email}/{subject}/{description}/{attachmentCount}") 
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response getNotificationByUser(@Context SecurityContext sc,
                                          @PathParam("name") String name,
                                          @PathParam("email") String email,
                                          @PathParam("subject") String subject,
                                          @PathParam("description") String description,
                                          @PathParam("attachmentCount") Integer attachmentCount,
                                          HttpServletRequest request,
                                          HttpServletResponse response) {
        try {
            List<InputStream> attachments = new ArrayList<>();
            if(attachmentCount > 0) {
                Part filePart = request.getPart("file");
                InputStream filecontent = filePart.getInputStream();
                attachments.add(filecontent);
            }
            EmailUtils.sendContactUsEmail(name, email, subject, description, attachments);
            
            Gson gson = new Gson();
            String json = gson.toJson("");
            return Response.ok().entity(json).build();
        }
        catch(Exception e) {
            return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).build();
        }

    }