使用SpringMVC和js实现文件及字段上传中遇到的坑

本文介绍了一种处理文件上传的方法,特别是在使用SpringMVC框架时如何正确处理空文件的情况。通过JavaScript动态设置或移除文件输入字段的name属性来避免空文件导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

界面代码:

<div class="easyui-layout" fit="true">
<form id="advertise_content_edit_form">
<table border="0" width="100%" cellpadding="5"  id="advertise_content_edit_table">
<tr>

                             <td><input type="file" id="test1" name="sharePic" /></td>

                              <td><input type="file" id="test2"  name-"userLog"/></td>

                            </tr>

                    </table>

          </form>  
</div>


后台代码:

class TestBean{

   private MultipartFile sharePic;

   private MultipartFile userLog;

}


上传用到的js

function sumbitData(){

   if($('#test1').val()==''){
$('#test1').removeAttr('name');
}else{
$('#test1').attr('name','sharePic');
}  

    if($('#test2').val()==''){
$('#test2').removeAttr('name');
}else{
$('#test2').attr('name','userLog');
} 

    

    var options={url:'<%=request.getContextPath()%>/advertisecontroller/editadvertisecontent.action?id=' + id,
beforeSubmit : function() {
return checkadvertisecontentformedit();//校验数据
},
type : 'POST',
success : function(result) {

}
};

$("#advertise_content_edit_form").ajaxSubmit(options);

     

}


这里特别要注意的是前面的判断file控制是否为空如果为空就去掉name属性,这是因为如果不去掉SpringMVC框架在读取到这个name属性

由于为空字符串强制转换为MultipartFile 会出现问题所有必须去掉这个name属性防止进行强制转换




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值