博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ajaxForm上传文件到本地服务器(封装)
阅读量:5107 次
发布时间:2019-06-13

本文共 2481 字,大约阅读时间需要 8 分钟。

不啰嗦,直接看代码

1.html:

文章封面 *

2.js封装ajaxForm:(用flag判断是因为当页面中有多个上传按钮时,让每一个form只初始化一次,如果不做判断chenge事件和submit事件会绑定多次,结果就会提交多次)

var upLoadImage = {    inputIdArr : [],    formIdArr : [],    start : function(formId, inputId, showRequest, callback){                var options = {            url : api.API_UP_LOAD_FILE,            beforeSubmit:  showRequest,  //提交前处理            success : callback,            resetForm: true,               dataType:  'json'        };        var flag = true;        for(var i = 0; i < this.inputIdArr.length; i++)        {            if(this.inputIdArr[i] == inputId)            {                flag = false;                break;            }        }        if(flag) //相同的ID只綁定一次事件        {            $("#" + inputId).change(function(){                $("#" + formId).submit();            });            this.inputIdArr.push(inputId);        }                var formFlag = true;        for(var j = 0; j < this.formIdArr.length; j++)        {            if(this.formIdArr[j] == formId)            {                formFlag = false;                break;            }        }        if(formFlag)        {            $("#" + formId).ajaxForm(function(){});            $("#" + formId).submit(function(){                            $(this).ajaxSubmit(options);                return false;            });            this.formIdArr.push(formId);        }    },}

3.调用方法

upLoadFile: function(){        upLoadImage.start("Form_1", "input_1",            function(formData) { //表单提交前被调用的回调函数                var file = formData[0].value.type; //formData是表单文件的一个数组                if (!/\/(?:jpg|png|bmp|pdf|mp4|MOV)/i.test(file)){   //这里可以限定上传文件格式                    alert("格式不正确!");                    $("#input_1").val(""); //如果不成功就清空文件域,tip:在IE中安全设置的原因不允许清空文件域                    return false; //如果“beforeSubmit”回调函数返回false,那么表单将不被提交                }            },            function(responseText, statusText) { //表单提交成功后调用的回调函数                if(statusText == "success")                {                    UpLoadCtrl.upLoadModel.pdfURL = responseText.data.url;                    UpLoadCtrl.scope.$apply();                }            }        )    }

4.注:项目使用了angular js和themify字体

转载于:https://www.cnblogs.com/codebook/p/6020632.html

你可能感兴趣的文章
Java日期
查看>>
知识点集锦
查看>>
Remove Duplicates from Sorted List I&&II
查看>>
毒瘤题No.007-byFHS
查看>>
javaweb学习总结(十一)——使用Cookie进行会话管理
查看>>
网络编程
查看>>
java的异常处理机制
查看>>
【转载】Android 的 Handler 机制实现原理分析
查看>>
scanf函数
查看>>
HTML5——新表单元素 表单属性 语义元素
查看>>
CSS3—— 分页 框大小 弹性盒子 多媒体查询 多媒体查询实例
查看>>
使用反射获取Android中隐藏的方法
查看>>
【原创】Leetcode -- Reverse Linked List II -- 代码随笔(备忘)
查看>>
人脸识别技术开发人证比对访客系统
查看>>
Android之人脸识别
查看>>
HDU 5340——Three Palindromes——————【manacher处理回文串】
查看>>
二叉树的下一个节点
查看>>
Nginx配置文件详细说明
查看>>
遇到的Mysql的一个坑
查看>>
AC日记——「HNOI2017」单旋 LiBreOJ 2018
查看>>