哇哈哈zhian 2013-10-17 03:47 采纳率: 0%
浏览 12739

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 2014-09-25 02:13
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果