为了账号安全,请及时绑定邮箱和手机立即绑定

请问如何使用jquery序列化进行文件上传

/ 猿问

请问如何使用jquery序列化进行文件上传

FFIVE 2019-09-13 15:10:44

如何使用jquery序列化进行文件上传

所以我有一个表单,我使用jquery序列化函数通过ajax提交表单

        serialized = $(Forms).serialize();

        $.ajax({

        type        : "POST",
        cache   : false,
        url     : "blah",
        data        : serialized,
        success: function(data) {

        }

但是如果表单有一个<input type="file">字段怎么办....如何使用这个ajax序列化方法将文件传递给表单...打印$ _FILES不输出任何内容


查看完整描述

3 回答

?
撒科打诨

无法使用AJAX上传文件,因为您无法访问存储在客户端计算机上的文件的内容,并使用javascript将其发送到请求中。实现此目的的技巧之一是使用隐藏的iframe。有一个很好的jquery表单插件,允许您AJAXify您的表单,它也支持文件上传。因此,使用此插件,您的代码将如下所示:

$(function() {
    $('#ifoftheform').ajaxForm(function(result) {
        alert('the form was successfully processed');
    });});

该插件自动负责订阅submit表单事件,取消默认提交,序列化值,使用正确的方法和处理文件上载字段,...



查看完整回答
反对 回复 2019-09-16
?
慕运维8079593

您现在可以使用Ajax上传文件!

例子:

https://stackoverflow.com/a/8758614/1072492

http://net.tutsplus.com/tutorials/javascript-ajax/uploading-files-with-ajax/


查看完整回答
反对 回复 2019-09-16
?
慕慕森

它适用于任何类型的表单

$(document).on("submit", "form", function(event){
    event.preventDefault();

    var url=$(this).attr("action");
    $.ajax({
        url: url,
        type: $(this).attr("method"),
        dataType: "JSON",
        data: new FormData(this),
        processData: false,
        contentType: false,
        success: function (data, status)
        {

        },
        error: function (xhr, desc, err)
        {


        }
    });        });



查看完整回答
反对 回复 2019-09-16

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信