Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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
Javascript 要求的零件不存在-弹簧_Javascript_Angularjs_Spring_Ng File Upload - Fatal编程技术网

Javascript 要求的零件不存在-弹簧

Javascript 要求的零件不存在-弹簧,javascript,angularjs,spring,ng-file-upload,Javascript,Angularjs,Spring,Ng File Upload,我正在尝试将附加的文件信息从agularjs控制器传递到spring控制器。我在将信息从angularjs传递到spring控制器时遇到了问题,它在浏览器控制台上抛出了错误,而没有调用spring控制器 错误消息: error : "Required request part 'ad' is not present" status : 500 下面是我在应用程序中使用的示例代码,用于从angularjs向spring控制器发送附加文件和信息 html: MyService.js _repSe

我正在尝试将附加的文件信息从agularjs控制器传递到spring控制器。我在将信息从angularjs传递到spring控制器时遇到了问题,它在浏览器控制台上抛出了错误,而没有调用spring控制器

错误消息:

error
:
"Required request part 'ad' is not present"
status
:
500
下面是我在应用程序中使用的示例代码,用于从angularjs向spring控制器发送附加文件和信息

html:

MyService.js

 _repServiceFactory.sendWithAttachments = function (formData) {

        var myUrl = appURL + '/sendData/sendEmailsTest.form'; 
        $http({
            method: "post",
            url: myUrl,
            //headers: {'Content-Type': 'application/x-www-form-urlencoded'},
            headers: {'Content-Type': undefined},
            data: formData
            /*transformRequest: function (data, headersGetterFunction) {
                return data;
            }*/

        }).success(function (result) {
            console.log(result);
        });
        return deferred.promise;
}
Springcontroller:

@Controller
@RequestMapping("/sendData")
public class DataController {
 @RequestMapping(value = "/sendEmailsTest", method = RequestMethod.POST,consumes = {"multipart/form-data"})
    public
    @ResponseBody
    String sendEmailsTest(@RequestPart("file") MultipartFile file) throws Exception {

        System.out.println("request body form data  " + file); 
//logic to get the files and the information and do accordingly..
}
}
spring-servlet.xml:

 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"
                  value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix">
            <value>/WEB-INF/views/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
     </bean>

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="10000000"/>
    </bean>

/WEB-INF/views/
.jsp

任何投入都会有帮助

您将从服务器获得
500
响应代码。 您需要在spring控制器方法中再添加一个
RequestPart
,即将方法定义更新为以下内容

String sendEmailsTest(@RequestPart("file") MultipartFile file, @RequestPart("ad") String jsonAd) throws Exception {

}

您还可以将
ad
绑定到
而不是
字符串
。我也做了类似的事情。

我按照您的建议尝试了,但现在显示了所需的错误请求部分“文件”不存在”状态:500..我想我需要从MyService.js传递两个参数,在MyService.js中,我只传递一个参数作为数据的一部分(即数据:formData)。这是问题的原因。任何输入都会有帮助。@gsswainga您可以调试saveForm方法以查看文件是否有某些值。您的html表单似乎没有绑定文件字段。否则,您也可以在“网络”选项卡中检查请求负载。获取文件输入字段的句柄并将.files[0]附加到formData。
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"
                  value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix">
            <value>/WEB-INF/views/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
     </bean>

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="10000000"/>
    </bean>
String sendEmailsTest(@RequestPart("file") MultipartFile file, @RequestPart("ad") String jsonAd) throws Exception {

}