配置文件绝对没有问题,页面代码已经看了好多遍了没发现问题.找不到原因.工具用的idea
你把你的代码贴完整一点,我写过一个ajax上传文件的代码,希望你能找到原因
前端代码:
<form id="csvForm" enctype="multipart/form-data">
<input id="accountName" name="accountName" value="${accountName}" hidden>
<input type="button" value="导入" id="external_button"/>
<input type="file" name="file" id="file"/>
</form>
//JS代码
/**
* 上传按钮绑定事件
*/
$('#external_button').click(function () {
if ($('#file').val() == "") {
alertMessage("请先选择文件");
return false;
}
var csvPath = $('#file').val();
var fileExtendOff = csvPath.substring(csvPath.lastIndexOf('.')).toLowerCase();
if (fileExtendOff != '.csv') {
alertMessage("文件格式有误,请上传csv格式");
return false;
}
doUpload();
return false;
});
/**
* 异步上传
*/
function doUpload() {
var formData = new FormData($("#csvForm")[0]);
$.ajax({
url: contextPath + '/security/importExtReconFile.htm' ,
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (data) {
if (data.code == '200') {
alertMessage(data.content);
window.location.reload();
} else {
alertMessage(data.content);
}
}
});
}
后台代码:
@ResponseBody
@RequestMapping(method = RequestMethod.POST, value = "/security/importExtReconFile")
public MessageBean importExtReconFile(@RequestParam("file") MultipartFile file,
HttpServletRequest request) throws IOException {
MessageBean messBean = new MessageBean(MessageCode.COMMON_SUCCESS);
//获取页面参数
String accountName = request.getParameter("accountName");
//获取文件名
String filename = file.getOriginalFilename();
AccountPeriodPo accountPeriodPo = new AccountPeriodPo();
InputStream fis = null;
try {
//获取上传文件的输入流
fis = file.getInputStream();
//1.检查对账文件数据的格式CSV
MessageBean result = checkCSVFile(fis);
if (!MessageCode.COMMON_SUCCESS.equals(result.getCode())) {
logger.error("csv数据格式不正确");
messBean.setCode(MessageCode.SYSTEM_ERROR);
messBean.setContent(result.getContent());
return messBean;
}
//2.存储到指定位置
//省略业务逻辑...
} catch (IOException e) {
logger.error("文件导入失败", e);
messBean.setCode(MessageCode.SYSTEM_ERROR);
messBean.setContent("文件导入失败");
return messBean;
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
logger.error("流关闭异常", e);
}
}
}
messBean.setContent("导入成功 !");
return messBean;
}
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
知道答案了,原来不是找不到方法,而是接受不到参数.在方法的参数中使用
MultipartFile[]
接受图片,但是还必须要加上@RequestParam(required = false)
注解,注解的参数表示这个参数可以为空.如果不使用这个注解就会出现我这个问题...