由网友(阳光切割了记忆的角度°)分享简介:我要上传使用angularjs和文件的Spring MVC 我在应用程序的context.xml一个multipartResolver豆。 < MVC:注解驱动/> <豆的id =multipartResolver 类=org.springframework.web.multipa...
我要上传使用angularjs和文件的Spring MVC
我在应用程序的context.xml一个multipartResolver豆。
< MVC:注解驱动/> <豆的id =multipartResolver 类=org.springframework.web.multipart.commons.CommonsMultipartResolver> <属性名=maxUploadSize值=2097152/> < /豆>
我的形式是这样的:
<形式方法=邮报ID =fromFileUploadENCTYPE =的multipart / form-data的 NG-提交=continueFileUpload()> < DIV CLASS =表单组> <标签类=控制标签COL-SM-4 COL-XS-12为=quoteIdentifier>引用标识符:< /标签> < DIV CLASS =COL-XS-4输入-MAX> <选择类型=文本级=表格控NAME =quoteIdentifierID =quoteIdentifierNG模型=quoteIdentifierNG选项=> <选项风格=显示:无VALUE =>选择与LT; /选项> < /选择> < / DIV> < / DIV> < DIV CLASS =表单组> <标签类=控制标签COL-SM-4 COL-XS-12为=文件>请上传的文件:其中,跨度类=必需> *< / SPAN> < /标签> < DIV CLASS =COL-XS-4输入-MAX控制> <输入类=inline-block的TYPE =文件名称=文件NG-模式=文件数据规则要求的=真正的ID =文件接受=CSV,的.xsl,的.xml,.MPP,应用程序/ vnd.ms - Excel的> < / DIV> <跨度ID =vaildFile级=TEXT-成功图标确定隐藏>有效的文件< / SPAN> <跨度ID =invaildFile级=TEXT-错误图标删除隐藏>无效的文件< / SPAN> < / DIV> < DIV CLASS =盒子头> < DIV CLASS =行动> <按钮式=提交级=BTN BTN-小学> < I类=图标右箭头>< / I>继续 < /按钮> < / DIV> < / DIV>< /表及GT;$ scope.continueFileUpload =功能(){VAR的uploadURL = +的serverUrlcontinueFileUploadVAR FORMDATA =新FORMDATA();formData.append(文件,file.files [0]); $ HTTP({ 方法:POST, 网址:的uploadURL, 标题:{内容类型:虚假}, 数据:FORMDATA, transformRequest:功能(数据,headersGetterFunction){ 返回的数据; } }) .success(功能(数据,状态){ 警报(成功); })};
春季控制器:
@Controller公共类FileUploadController {@RequestMapping(值=/ continueFileUpload,方法= RequestMethod.POST) @ResponseBody 公共字符串continueFileUpload(HttpServletRequest的请求, HttpServletResponse的响应){ MultipartHttpServletRequest mRequest; 尝试{ mRequest =(MultipartHttpServletRequest)请求; mRequest.getParameterMap(); 迭代器<串GT; ITR = mRequest.getFileNames(); 而(itr.hasNext()){ MultipartFile MFILE = mRequest.getFile(itr.next()); 字符串文件名= mFile.getOriginalFilename(); 的System.out.println(文件名); } }赶上(例外五){ e.printStackTrace(); }返回null; }
当我想补充的multipart / form-data的页眉我得到 **的请求被拒绝,因为没有多部分边界发现**
例外
如果我没有补充,我得到 org.apache.catalina.connector.RequestFacade不能转换为org.springframework.web.multipart.MultipartHttpServletRequest
$ scope.continueFileUpload =功能(){VAR的uploadURL = +的serverUrlcontinueFileUploadVAR FORMDATA =新FORMDATA();formData.append(文件,file.files [0]); $ HTTP({ 方法:POST, 网址:的uploadURL, 标题:{'内容类型':未定义}, 数据:FORMDATA, transformRequest:功能(数据,headersGetterFunction){ 返回的数据; } }) .success(功能(数据,状态){ 警报(成功); })};
I am trying to upload a file using angularjs and spring MVC
I have a multipartResolver bean in application-context.xml.
<mvc:annotation-driven />
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="2097152" />
</bean>
my form look like this:
<form method="post" id="fromFileUpload" enctype="multipart/form-data"
ng-submit="continueFileUpload()">
<div class="form-group">
<label class="control-label col-sm-4 col-xs-12" for="quoteIdentifier">Quote Identifier : </label>
<div class="col-xs-4 input-max">
<select type="text" class="form-control " name="quoteIdentifier" id="quoteIdentifier" ng-model="quoteIdentifier" ng-options="">
<option style="display: none" value="">Choose</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-4 col-xs-12" for="file">Please upload the file : <span class="required">*</span> </label>
<div class="col-xs-4 input-max controls ">
<input class="inline-block" type="file" name="file" ng-model="file" data-rule-required="true" id="file" accept=".csv,.xsl,.xml,.mpp,application/vnd.ms-excel">
</div>
<span id="vaildFile" class="text-success icon-ok hide">Valid File</span> <span id="invaildFile" class="text-error icon-remove hide"> Invalid File</span>
</div>
<div class="box-header">
<div class="actions">
<button type="submit" class="btn btn-primary">
<i class="icon-arrow-right"></i> Continue
</button>
</div>
</div>
</form>
$scope.continueFileUpload=function (){
var uploadUrl=serverUrl+"continueFileUpload";
var formData=new FormData();
formData.append("file",file.files[0]);
$http({
method: 'POST',
url: uploadUrl,
headers: {'Content-Type': false},
data: formData,
transformRequest: function(data, headersGetterFunction) {
return data;
}
})
.success(function(data, status) {
alert("success");
})
};
spring controller:
@Controller
public class FileUploadController {
@RequestMapping(value = "/continueFileUpload", method = RequestMethod.POST)
@ResponseBody
public String continueFileUpload(HttpServletRequest request,
HttpServletResponse response){
MultipartHttpServletRequest mRequest;
try {
mRequest = (MultipartHttpServletRequest) request;
mRequest.getParameterMap();
Iterator<String> itr = mRequest.getFileNames();
while (itr.hasNext()) {
MultipartFile mFile = mRequest.getFile(itr.next());
String fileName = mFile.getOriginalFilename();
System.out.println(fileName);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
When I add multipart/form-data for the header I get **the request was rejected because no multipart boundary was found**
exceptions
If I didnt add I get org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest
$scope.continueFileUpload=function (){
var uploadUrl=serverUrl+"continueFileUpload";
var formData=new FormData();
formData.append("file",file.files[0]);
$http({
method: 'POST',
url: uploadUrl,
headers: {'Content-Type': undefined},
data: formData,
transformRequest: function(data, headersGetterFunction) {
return data;
}
})
.success(function(data, status) {
alert("success");
})
};
相关推荐
最新文章