2 tianxiehuiyuaninfo tianxiehuiyuaninfo 于 2013.10.17 11:47 提问

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;这里报空指针异常

请大家帮忙看看!

2个回答

D1208
D1208   2014.09.25 10:13

现在说文件上传一般都用spring的MultipartFile,前台指定form的encType="multipart/form-data",后台直接用MultipartFile接收,然后转换成file

sherry718
sherry718   2016.03.29 16:51

你好,为什么为null 你解决了么?

Csdn user default icon
上传中...
上传图片
插入图片