您的位置:首页 > 编程语言 > Java开发

spring mvc CommonsMultipartResolver文件上传maxUploadSize限制大小

2015-04-27 13:26 429 查看
第一步:配置sping

Xml代码


<bean id="multipartResolver"

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<!--1024*200即200k-->

<property name="maxUploadSize" value="204800"/>

<!--resolveLazily属性启用是为了推迟文件解析,以便在UploadAction 中捕获文件大小异常-->

<property name="resolveLazily" value="true"/>

</bean>

第二步:在上传action中自己捕获异常

Java代码


@RequestMapping

public void execute(

@RequestParam(required = false) MultipartFile file,

@RequestParam(value = "file_info_id", required = false) Integer fileInfoId,

ModelMap model, HttpServletRequest request) throws Exception {

if (file == null || file.isEmpty()) {

return;

}

byte[] bytes = file.getBytes();

……………………

………………

}

@ExceptionHandler(Exception.class)

public ModelAndView handleException(Exception ex,HttpServletRequest request) {

Map<Object, Object> model = new HashMap<Object, Object>();

if (ex instanceof MaxUploadSizeExceededException){

model.put("errors", "文件应不大于 "+

getFileKB(((MaxUploadSizeExceededException)ex).getMaxUploadSize()));

} else{

model.put("errors", "不知错误: " + ex.getMessage());

}

return new ModelAndView("/common/file/upload", (Map) model);

}

private String getFileKB(long byteFile){

if(byteFile==0)

return "0KB";

long kb=1024;

return ""+byteFile/kb+"KB";

}

private String getFileMB(long byteFile){

if(byteFile==0)

return "0MB";

long mb=1024*1024;

return ""+byteFile/mb+"MB";

}

第三步:界面

Html代码


<script type="text/javascript">

$(function() {

$('#frmupload1').submit(function() {

if ($('#file1').val() == '') {

alert('请选择上传导入文件!');

$('#file1').focus();

return false;

}else{

if(!isvalidatefile($('#file1').val()))

return false;

}

});

$('#frmupload2').submit(function() {

if ($('#file2').val() == '') {

alert('请选择上传导入文件!');

$('#file2').focus();

return false;

}else{

if(!isvalidatefile($('#file2').val()))

return false;

}

});

});

function isvalidatefile(obj) {

var extend = obj.substring(obj.lastIndexOf(".") + 1);

//alert(extend);

if (extend == "") {

} else {

if (!(extend == "xls" )) {

alert("请上传后缀名为xls(Excel2003)或xlsx(Excel2007)的文件!");

return false;

}

}

return true;

}

<body>

<h1>上传文件</h1>

<form action="" method="post" enctype="multipart/form-data" onsubmit="return checkSubmit();">

<p>请选择文件:</p>

<p ${not empty errors ?"style='color : red;'":""}>${errors}</p>

<input type="file" name="file" id="file"/> <input type="submit" value="确定"/>

</form>

</body>

参考来源:

spring MVC上传文件使用了common.fileupload组件

使用Spring MVC和注释配置来实现文件上传
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: