问题描述
- jquery ajax 上传文件 后台取不到file
-
正在做一个文件上传的程序,在上传之前需要验证文件的大小,不能超过10M,我采用的是jquery ajax的方式提交到后台Action,由后台Action判断文件大小。
首先看jsp页面:上传的文件不得大于10M
。。。。省略部分....javascript代码:
function checkFileSize() {
var uploadfile = jq("#uploadfile");
var returnval = false;
if(uploadfile.val()==""){
alert("请选择需要上传的文件");
return false;
}
var formData = new FormData();
formData.append("userfile",jq("#uploadfile"));
var url = "ajax/ajax_checkFileSize.action";
jq.ajax({
type: "POST",
url: url,
async: false,
enctype: 'multipart/form-data',
data: formData,
cache: false,
contentType: false,
processData: false,
success: function (msg) {
if(msg=="0"){
jq("#checkfile").text("");
alert("上传文件"+uploadfile.val()+"大于10M");
returnval = false;
}else{
jq("#checkfile").text("文件可以上传");
jq("#checkfile").reset();
returnval = true;
}
}
});
return returnval;
}
ajax后台判断也很简单:
public String checkFileSize() throws IOException{
out = response.getWriter();
String message="";
try {
response.setCharacterEncoding("utf-8");
double size = (double)file.length()/1048576;
if(size>10){
message = "0";
}else{
message = "1";
}} catch (Exception e) { e.printStackTrace(); message="0"; }finally{ out.write(message); out.flush(); out.close(); } return null; }
但是每次都在double size = (double)file.length()/1048576;这里报空指针异常
请大家帮忙看看!
解决方案
现在说文件上传一般都用spring的MultipartFile,前台指定form的encType="multipart/form-data",后台直接用MultipartFile接收,然后转换成file
解决方案二:
你好,为什么为null 你解决了么?