最近做了一个文件上传 用ajaxfileupload.js 在火狐 谷歌 IE9及以上版本可用  为了兼容IE8  找到了jquery-form.js

html 代码:

<form id="form1" name="form1" runat="server" method="post" enctype="multipart/form-data">
           <input type="file" name="fileName" id="fileName" />
            <a class="easyui-linkbutton" iconCls="icon-up"  οnclick="upload()" href="javascript:void(0);">上传</a>
</form>

js代码:

function upload(){
        if($("#fileName").val()==""){
            $.messager.alert("操作提示","请点击浏览按钮 选择文件");
            return false;
        }
      
        var form = $("form[name=form1]");  
        var options  = {    
            url:'${ctx}/CostMsg/upFile',    
            type:'post',
            data:{'id':$("#chargesId").val()},    
            success:function(data)    
            {    
                var jsondata = eval("("+data+")");
                if(jsondata.success){
                    $("#fileName").val("");
                    var fileName = jsondata.msg;
                    $("#chargesId").val(jsondata.obj);
                    var html="<div style='float:left;margin:5px'><div οnclick='deleteImage(this);'><img  style='float:right' src='${static}/js/jquery-easyui-1.2.6/themes/icons/cancel.png'/></div><a href='javascript:void(0);' style='margin:5px' ><img src='${static}/uploadFiles/chargesFile/"+fileName+"' width='140' height='140' /></a></div>";
                     $('#upImage').append(html);   
                }else{  
                    var message = jsondata.msg;  
                    $("#messageTip").html("<span style='color:red'>"+message+"</span>");
                }  
            }    
        };    
        form.ajaxSubmit(options);
    
    }

controllor代码:

/**
     * 文件上传
     * @param apkFile
     * @param request
     * @param id
     * @return Json
     */
    @RequestMapping(value = "/upFile")
    @ResponseBody
    public void upFile(@RequestParam("fileName") MultipartFile fileName,HttpServletRequest request,HttpServletResponse response,String id) {
        try {
            Json json=new Json();
            response.setContentType("text/html");
            json=CostMsgService.upFile(fileName,request, response,id);
            response.setContentType("text/html; charset=UTF-8");
            PrintWriter out = response.getWriter();
             out.println(JSONObject.toJSONString(json));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

service代码:

@Override
    public Json upFile(MultipartFile file,HttpServletRequest request,HttpServletResponse response,String id) {
        Json json=new Json();
        try {
            String[] types=new String[]{".jpg",".png",".jpeg",".bmp",".zip",".JPG",".PNG",".JPEG",".BMP",".ZIP"};
            // 文件保存目录路径  
            String savePath = request.getSession().getServletContext().getRealPath("/")+ "static/"+Upload_Directory;  
            // 文件保存目录URL  
            String saveUrl = request.getContextPath() +"/static/"+ Upload_Directory;  
            // 定义允许上传的文件扩展名  
            File inbox = new File(savePath); //判断文件夹是否存在
            if (!inbox.exists()) {
                inbox.mkdirs();
            }
            File inbox1 = new File(saveUrl); //判断文件夹是否存在
            if (!inbox1.exists()) {
                inbox1.mkdirs();
            }
            // 最大文件大小  
            long maxSize = 3145728;  
            if (!ServletFileUpload.isMultipartContent(request)) {
                json.setMsg("请选择文件");
                json.setSuccess(false);
                return  json;
            }  
            String originFileName=file.getOriginalFilename();
            String suffix=originFileName.indexOf(".") !=-1?

originFileName.substring(originFileName.lastIndexOf("."), originFileName.length()):null;
            String str = System.currentTimeMillis()+"";
            String newFileName=str+suffix;

String dirName = request.getParameter("dir");  
            if (dirName == null) {  
                dirName = "image";  
            }
            // 检查文件大小  
            if (file.getSize() > maxSize) {  
                json.setMsg("上传文件大小超过限制。最大3M");
                json.setSuccess(false);
                return json;  
            }  
            // 检查扩展名

if (!Arrays.<String> asList(types).contains(suffix)) {  
                json.setMsg("上传文件扩展名是不允许的扩展名。\n只允许jpg,jpeg,png,bmp,zip 格式。");
                json.setSuccess(false);
                return json;  
            }
            IdGenerator idG=new IdGenerator();
            String chargesId=id;
            if(id==null||id.length()==0){
                chargesId=idG.getLongValue()+"";
            }
            if(suffix!=null){
                FileUtils.copyInputStreamToFile(file.getInputStream(), new File(savePath, newFileName));
                FileUtils.copyInputStreamToFile(file.getInputStream(), new File(saveUrl, newFileName));
                CostMsgDao.executeSql("insert into t_jy_file (ID,TABLE_ID,FILE_NAME,TABLE_NAME) values('"+str+"','"+chargesId+"','"+newFileName+"','t_jy_deductionrecord')");
                json.setMsg(newFileName);
                json.setObj(chargesId);
                json.setSuccess(true);
                logger.error("file upload success:"+originFileName+" file length is"+file.getSize());
                return json;
            }else {
                logger.error("不能识别该文件 或文件已损坏:"+originFileName);
                return json;
            }  
        } catch (Exception e) {  
            e.printStackTrace();
            return json;
        }


该代码已经过测试 并上线使用

jquery-form.js 兼容IE8 IE9等以上火狐谷歌等浏览器相关推荐

  1. jquery.form.js在ie8下提示下载文件

    1.后台返回html格式的json文档 也就是设置content类型为:response.setContentType("text/html"); //renderJson(res ...

  2. jquery.form.js插件中ajaxSubmit提交在jquery1.4版本中的应用

    作者:xyzroundo 下以处理的是对含有 <input type"file"  /> 元素的表单,利用jquery.form 的ajaxSubmit方法进行类似aj ...

  3. jquery.form.js的ajaxSubmit和ajaxForm使用(用于多文件上传以及其他参数的混合提交)

    jquery.form.js的ajaxSubmit和ajaxForm使用(用于多文件上传以及其他参数的混合提交) ajaxSubmit 和ajaxForm区别 ajaxForm ajaxForm()不 ...

  4. jQuery.form.js使用

    jQuery.form.js是一个form插件,支持ajax表单提交和ajax文件上传. 下载地址 百度云:http://pan.baidu.com/s/1eQoYE46 360云:http://yu ...

  5. 利用jquery.form.js实现Ajax无刷新图片上传及预览功能

    某些时候当我们做登记页面的时候可能需要上传图片,并实现即时预览的功能. 如果只是预览而不上传,可以使用ImagePreview来实现,方便简单.如果需要上传,那么你也可以使用uploadify无刷新上 ...

  6. 【jQuery】使用jquery.form.js,获取提交表单返回值

    jQuery表单库介绍 实现 html 中提交表单并实现不跳转页面处理返回值 jQuery表单库(jquery.form.js库)以jQuery为基础,用于处理表单AJAX提交,使得表单AJAX提交简 ...

  7. 解决 jquery.form.js和springMVC上传 MultipartFile取不到信息

    前段页面: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnc ...

  8. ASP.NETmvc常用JQUERY收藏【jquery.form.js结合jquery.validate.js】

    虽然jquery.form.js可以通过自定义验证方式实现个性化的验证,不过我们大量使用的还不是一个红星(*) 在jquery.form.js下使用jquery.validate.js就可以简简单单的 ...

  9. jQuery.Form.js 异步提交表单使用总结

    jQuery.Form.js 是一个用于使用jQuery异步提交表单的插件,它使用方法简单,支持同步和异步两种方式提交. 第一步:引入jQuery与jQuery.Form.js 1 <scrip ...

最新文章

  1. Redhat 7使用CentOS 7的Yum网络源
  2. Linux下C/C++开发工具注意事项
  3. 戚俊:可能是最懂架构的投资人
  4. HTML布局是外边距咋表示,布局 页面设置百分比 子元素如何设置外边距?
  5. 关于sap的日期,时间
  6. 软件工程的 第二天贪吃蛇
  7. cc2530设计性实验代码六
  8. 魔兽世界服务器卡顿原理,《魔兽世界》怀旧服卡顿解决方法
  9. 树莓派挂载硬盘/U盘以及分区教程
  10. python ocr文字识别竖排繁体_小巧免费的图片文字识别OCR软件 支持简体识别和竖排繁体中文...
  11. 计算机网络双绞线的功能,双绞线由几根组成?双绞线每根线的作用
  12. 手游本地化不得不看的10条规则
  13. 笔记本html外接显示器,笔记本怎么外接显示器 笔记本用外接显示器设置教程
  14. 深入浅出matplotlib(101):研究最有名的滤波函数:sinc函数
  15. 书论83 梁巘《承晋斋积闻录》
  16. Android studio gradle编译失败问题汇总
  17. 手机端兼容iPhoneX刘海屏
  18. 数据库 day60,61 Oracle入门,单行函数,多表查询,子查询,事物处理,约束,rownum分页,视图,序列,索引
  19. 课程学习:Linux系统管理
  20. Esri_Land_Cover_2020_10m的介绍与数据下载教程

热门文章

  1. python来一份情书采集 备用python xpath
  2. 大量机器学习(Machine Learning)深度学习(Deep Learning)资料
  3. 虚拟主机搭建python服务器,python虚拟主机服务器
  4. 面向“伙伴+华为”体系,华为产品力的变与不变
  5. Mycat之——取模分片
  6. Git---------Git---------Git
  7. android ip 定位,IP定位-API文档-开发指南-Web服务 API | 高德地图API
  8. VCS Error-[NYI-NS] Not Yet Implemented
  9. MySQL备份Percona Xtrabackup安装和卸载
  10. java Opencv保存中文路径的图片