后台file为null-jquery ajax 上传文件 后台取不到file

问题描述

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 你解决了么?

时间: 2025-01-29 23:59:57

后台file为null-jquery ajax 上传文件 后台取不到file的相关文章

jQuery Ajax 上传文件处理方式介绍(推荐)_jquery

AJAX 是一种与服务器交换数据的技术,可以在补充在整个页面的情况下更新网页的一部分. 下面的表格列出了所有的 jQuery AJAX 方法: jQuery Ajax在web应用开发中很常用,它主要包括有ajax,get,post,load,getscript等等这几种常用无刷新操作方法,接下来通过本文给大家介绍jquery ajax 上传文件处理方式. FormData对象 XMLHttpRequest Level 2添加了一个新的接口FormData.利用FormData对象,我们可以通过J

使用ajaxfileupload.js实现ajax上传文件php版_jquery

 无论是PHP,还是其他的服务端脚本都提供了文件上传功能,实现起来也比较简单.而利用JavaScript来配合,即可实现Ajax方式的文件上传.虽然jQuery本身没有提供这样的简化函数,但有不少插件可以实现.其中,Phpletter.com提供的ajaxfileupload.js是一个轻量的插件,而且编写方式与jQuery提供的全局方法$.post()非常相似,简单易用. 不过,该插件实在太简化了,除了可提供需上传文件的路径外,也就不能传递额外的值到后台服务端.所以,我修改了一下该脚本,增加个

jQuery异步上传文件插件ajaxFileUpload详细介绍

这篇文章主要介绍了jQuery异步上传文件插件ajaxFileUpload详细介绍,本文首先讲解了ajaxFileUpload的参数.错误提示等知识,然后给出了简单使用实例和ASP.NET MVC模式下的使用实例,需要的朋友可以参考下     一.ajaxFileUpload是一个异步上传文件的jQuery插件. 传一个不知道什么版本的上来,以后不用到处找了. 语法:$.ajaxFileUpload([options]) options参数说明: 1.url 上传处理程序地址. 2,fileEl

jQuery fileload上传文件

<!-- 这个你可以不引入,上传功能也是正常的,不过样式就很坑了. --> <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css"> <!-- 这个你也可以不引入,如果你够个性的话. --> <link rel="stylesheet" href="css/jquery.fileu

Ajax上传文件进度条Codular

现在,人们喜欢在浏览网页时做一些其他事情而不离开该网页,这通常是通过ajax来实现.大多数情况,人们使用jQuery来实现,但是随着浏览器的进步,人们比不需要这么做.这里我们将介绍如何在不离开页面的情况下将文件上传到服务器,我们将使用与我们之前的文章中使用的相同的后端PHP代码. 该脚本将上传文件至服务器,同时显示上传进度,并最终返回上传文件的链接地址.在某些情况下,你可能想要返回上传文件的id或者其他的应用信息. Note: 该代码不支持较老的ie浏览器,通过Can I use我们只支持ie1

php-PHP+ajax上传文件滚动条怎么做?

问题描述 PHP+ajax上传文件滚动条怎么做? 想做个上传文件袋滚动条的功能,用PHP+ajax来实现,例如点击 上传按钮 上传后返回上传成功路径,有滚动条显示.谁有代码分享下,谢谢 解决方案 http://www.helloweba.com/view-blog-189.html 解决方案二: swfupload,uploadify都可以(flash实现).. ajax是不能上传文件件的,要结合html5的formdata对象才行 jquery.form.js好像也有进度条(在支持formda

简单的jquery ajax上传插件ajaxfileupload

做web应用经常需要上传. 所以,ajax上传经常要用到. 分享个jquery的ajax上传组件ajaxfileupload. 用法很简单:  代码如下 复制代码 <!DOCTYPE HTML> <html lang="en"> <html> <head>     <title>上传demo</title>     <meta charset="utf-8">     <scr

jQuery异步上传文件插件ajaxFileUpload详细介绍_jquery

一.ajaxFileUpload是一个异步上传文件的jQuery插件. 传一个不知道什么版本的上来,以后不用到处找了. 语法:$.ajaxFileUpload([options]) options参数说明: 1.url   上传处理程序地址. 2,fileElementId   需要上传的文件域的ID,即<input type="file">的ID. 3,secureuri 是否启用安全提交,默认为false. 4,dataType 服务器返回的数据类型.可以为xml,sc

jQuery获取上传文件的名称的正则表达式

  在Web开发中,经常会涉及到文件上传.文件上传时通常都要验证文件的有效性,这个通常就要用正则表达式来判断. 方法一: ? 1 2 3 4 5 6 7 $('input[type="file"]').on('change', function() { var reg = /[^/]*[/]+/g; //匹配文件的名称和后缀的正则表达式 var name = $(this).val().replace(reg, ''); var postfix = /.[^.]+/.exec(name