×

ajax()上传文件

ajax()上传文件(ajax传输文件)

admin admin 发表于2023-04-04 06:06:07 浏览33 评论0

抢沙发发表评论

本文目录一览:

ajax的res怎么传到其他文件

传其他参数

ajax文件上传怎么传其他参数,Ajax进行文件与其他参数的上传功能

光启元

转载

关注

0点赞·945人阅读

记得前一段时间,为了研究Ajax文件上传,找了很多资料,在网上看到的大部分是form表单的方式提交文件,对于Ajax方式提交文件并且也要提交表单中其他数据,发现提及的并不是很多,后来在同事的帮助下,使用ajaxfileupload最终完成了文件上传与其他提交的操作,现在分享给大家,希望大家能有有所帮助。本文主要介绍了使用Ajax进行文件与其他参数的上传功能(java开发),非常不错,具有参考借鉴价值,需要的朋友参考下吧,希望能帮助到大家。-ajax()上传文件

文件上传:

操作步骤:

1 导入jar包:

我们在使用文件上传时,需要使用到两个jar包,分别是commons-io与commons-fileupload,在这里我使用的两个版本分别是2.4与1.3.1版本的,需要使用JS文件与jar包最后会发给大家一个连接(如何失效请直接我给留言,我会及时更改,谢谢)。-ajax()上传文件

2 修改配置文件:

当我们导入的jar包是不够的,我们需要使用到这些jar包,由于我当时使用的是SSM框架,所以我是在application-content.xml中配置一下CommonsMultipartResolver,具体配置方法如下:-ajax()上传文件

104857600

4096

3 JSP文件:

大家对form表单提交问价的方式很熟悉,但是我们有很多情况下并不能直接使用form表单方式直接提交。这时候我们就需要使用Ajax方式提交,Ajax有很多的好处,比如当我们不需要刷新页面获希望进行局部刷新的时候,我们就可以使用Ajax。-ajax()上传文件

如何用ajax上传文件

引入ajaxfileupload.js

jQuery.extend({

    createUploadIframe: function(id, uri)

    {

        //create frame

        var frameId = 'jUploadFrame' + id;

        if(window.ActiveXObject) {

            var io = document.createElement('iframe id="' + frameId + '" name="' + frameId + '" /');-ajax()上传文件

            if(typeof uri== 'boolean'){

                io.src = 'javascript:false';

            }

            else if(typeof uri== 'string'){

                io.src = uri;

            }

        }

        else {

            var io = document.createElement('iframe');

            io.id = frameId;

            io.name = frameId;

        }

        io.style.position = 'absolute';

        io.style.top = '-1000px';

        io.style.left = '-1000px';

        document.body.appendChild(io);

        return io

    },

    createUploadForm: function(id, fileElementId)

    {

        //create form

        var formId = 'jUploadForm' + id;

        var fileId = 'jUploadFile' + id;

        var form = $('form  action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"/form');-ajax()上传文件

        var oldElement = $('#' + fileElementId);

        var newElement = $(oldElement).clone();

        $(oldElement).attr('id', fileId);

        $(oldElement).before(newElement);

        $(oldElement).appendTo(form);

        //set attributes

        $(form).css('position', 'absolute');

        $(form).css('top', '-1200px');

        $(form).css('left', '-1200px');

        $(form).appendTo('body');

        return form;

    },

    addOtherRequestsToForm: function(form,data)

    {

        // add extra parameter

        var originalElement = $('input type="hidden" name="" value=""');

        for (var key in data) {

            name = key;

            value = data[key];

            var cloneElement = originalElement.clone();

            cloneElement.attr({'name':name,'value':value});

            $(cloneElement).appendTo(form);

        }

        return form;

    },

    ajaxFileUpload: function(s) {

        // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout-ajax()上传文件

        s = jQuery.extend({}, jQuery.ajaxSettings, s);

        var id = new Date().getTime()

        var form = jQuery.createUploadForm(id, s.fileElementId);

        if ( s.data ) form = jQuery.addOtherRequestsToForm(form,s.data);

        var io = jQuery.createUploadIframe(id, s.secureuri);

        var frameId = 'jUploadFrame' + id;

        var formId = 'jUploadForm' + id;

        // Watch for a new set of requests

        if ( s.global  ! jQuery.active++ )

        {

            jQuery.event.trigger( "ajaxStart" );

        }

        var requestDone = false;

        // Create the request object

        var xml = {}

        if ( s.global )

            jQuery.event.trigger("ajaxSend", [xml, s]);

        // Wait for a response to come back

        var uploadCallback = function(isTimeout)

        {

            var io = document.getElementById(frameId);

            try

            {

                if(io.contentWindow)

                {

                    xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;-ajax()上传文件

                    xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;-ajax()上传文件

                }else if(io.contentDocument)

                {

                    xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;-ajax()上传文件

                    xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;-ajax()上传文件

                }

            }catch(e)

            {

                jQuery.handleError(s, xml, null, e);

            }

            if ( xml || isTimeout == "timeout")

            {

                requestDone = true;

                var status;

                try {

                    status = isTimeout != "timeout" ? "success" : "error";

                    // Make sure that the request was successful or notmodified

                    if ( status != "error" )

                    {

                        // process the data (runs the xml through httpData regardless of callback)

                        var data = jQuery.uploadHttpData( xml, s.dataType );

                        // If a local callback was specified, fire it and pass it the data

                        if ( s.success )

                            s.success( data, status );

                        // Fire the global callback

                        if( s.global )

                            jQuery.event.trigger( "ajaxSuccess", [xml, s] );

                    } else

                        jQuery.handleError(s, xml, status);

                } catch(e)

                {

                    status = "error";

                    jQuery.handleError(s, xml, status, e);

                }

                // The request was completed

                if( s.global )

                    jQuery.event.trigger( "ajaxComplete", [xml, s] );

                // Handle the global AJAX counter

                if ( s.global  ! --jQuery.active )

                    jQuery.event.trigger( "ajaxStop" );

                // Process result

                if ( s.complete )

                    s.complete(xml, status);

                jQuery(io).unbind()

                setTimeout(function()

                { try

                    {

                        $(io).remove();

                        $(form).remove();

                    } catch(e)

                    {

                        jQuery.handleError(s, xml, null, e);

                    }

                }, 100)

                xml = null

            }

        }

        // Timeout checker

        if ( s.timeout  0 )

        {

            setTimeout(function(){

                // Check to see if the request is still happening

                if( !requestDone ) uploadCallback( "timeout" );

            }, s.timeout);

        }

        try

        {

            // var io = $('#' + frameId);

            var form = $('#' + formId);

            $(form).attr('action', s.url);

            $(form).attr('method', 'POST');

            $(form).attr('target', frameId);

            if(form.encoding)

            {

                form.encoding = 'multipart/form-data';

            }

            else

            {

                form.enctype = 'multipart/form-data';

            }

            $(form).submit();

        } catch(e)

        {

            jQuery.handleError(s, xml, null, e);

        }

        if(window.attachEvent){

            document.getElementById(frameId).attachEvent('onload', uploadCallback);

        }

        else{

            document.getElementById(frameId).addEventListener('load', uploadCallback, false);

        }

        return {abort: function () {}};

    },

    uploadHttpData: function( r, type ) {

        var data = !type;

        data = type == "xml" || data ? r.responseXML : r.responseText;

        // If the type is "script", eval it in global context

        if ( type == "script" )

            jQuery.globalEval( data );

        // Get the JavaScript object, if JSON is used.

        if ( type == "json" )

        {

            // If you add mimetype in your response,

            // you have to delete the 'pre/pre' tag.

            // The pre tag in Chrome has attribute, so have to use regex to remove

            var data = r.responseText;

            var rx = new RegExp("pre.*?(.*?)/pre","i");

            var am = rx.exec(data);

            //this is the desired data extracted

            var data = (am) ? am[1] : "";    //the only submatch or empty

            eval( "data = " + data );

        }

        // evaluate scripts within html

        if ( type == "html" )

            jQuery("div").html(data).evalScripts();

        //alert($('param', data).each(function(){alert($(this).attr('value'));}));

        return data;

    }

})

2.引入上传文件所需的jar

3.配置servlet.xml(不是web.xml)

4.jsp上传框

5.ajax传文件到后台

6.后台接收文件

7.获取之后怎么处理自己看着办咯,我只能帮到这里了

uniapp使用ajax上传文件

uniapp使用ajax上传文件当我们需要使⽤ajax的⽅式上传⽂件的时候,可以使⽤js的new FormData();对象。var formData=new