我试图使用angular js和spring mvc上传多个=“true”的多个输入类型文件,但我从服务器获得异常是“请求被拒绝,因为没有找到多部分边界”
在这里,我将把我的代码放在下面
我的jsp是
这里我是在点击添加后从角度控制器生成输入元素,并在“”中生成输入控件.
我的角度控制器是
'use strict';
var App = angular.module('TechnoBlogs',['ngRoute','ui.router']);
var $injector = angular.injector(['ng']);
App.config(['$httpProvider',function ($httpProvider) {
/*$httpProvider.defaults.headers.post['Content-Type'] = 'application/json; charset=UTF-8';*/
}],['$routeProvider',function($routeProvider){
$routeProvider.
when('/create',{
templateUrl: '/',controller: 'controller'
});
}]);
var currentg1=0;
var controller = function($scope,$http,fileService){
$scope.blog = [];
/*var currentg1=0;*/
$scope.blog.desc=[];
$scope.blog.desccode=[];
$scope.blog.descimg=[];
$scope.add=function(){
var $div = angular.element("
required='required'>
我的弹簧控制器是
@RequestMapping(value="/saveblog",method=RequestMethod.POST,headers = "'Content-Type': 'multipart/form-data'")
public void saveblog(MultipartHttpServletRequest request,HttpServletResponse response)
{
System.out.println("in multipart ");
Iterator
我也为multipart创建一个bean
之后仍然有例外
HTTP/1.1 404 Not Found
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Language: en
Content-Length: 949
我的请求标题是
POST /technoblogs/blog/saveblog HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 209
Accept: application/json,text/plain,*/*
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/43.0.2357.130 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7uIEu9ax8IY8nCde
Referer: http://localhost:8080/technoblogs/blog/
Accept-Encoding: gzip,deflate
Accept-Language: en-US,en;q=0.8
Cookie: JSESSIONID=61816E4AB7F6905F688755CF22BC16FF
最佳答案
也许这link会帮助你.您缺少的是内容标题.
从链接的答案:
Angular will POST as JSON even if you set the Content-Type to the correct value multipart/form-data. So we must transform our request manually to the correct data. … [using] a transformRequest function that does nothing as returning your original FormData … like this:
$http({
method: 'POST',url: 'newDocument',headers: {'Content-Type': 'multipart/form-data'},data: formData,transformRequest: function(data,headersGetterFunction) {
return data; // do nothing! FormData is very good!
}
})
编辑:您能告诉我们您的HTTP响应和/或请求吗?