当前位置: 首页 > 知识库问答 >
问题:

使用ajax提交多部分/表单数据时,文件为空

司徒经纶
2023-03-14

在使用ajax提交多部分/表单数据时,我遇到了一个问题。

HTML代码:

<form id='form_foto' method='post' enctype='multipart/form-data'>
   <input type='hidden' id='id_noticia' name='id_noticia' value='"+id_noticia+"' />
   <input name='foto[]' type='file' multiple />
</form>

jQuery和Ajax:

          $("#form_foto").submit(function(e){

                $("#form_foto").append("<br />Aguarde...");

                var formData = new FormData(this);

                $.ajax({
                    url: "/PortalGBD/services",
                    type: "POST",
                    data: formData,
                    async: false,
                    dataType: "multipart/form-data",
                    processData: false,
                    contentType: false,
                    success: function(resposta){
                        alert(resposta);
                    }
                });
                e.preventDefault(); 
            });
            $("#form_foto").submit();
            self.close();
        }

以及文件输入为空的请求:

-----------------------------65942623427134内容-处置:表单-数据;名称="id_noticia"

336-----------------65942623427134内容配置:表单数据;name=“foto[]”;filename=”“内容类型:应用程序/八位字节流

-----------------------------65942623427134--

请帮我解决这个问题。非常感谢。

共有1个答案

墨高杰
2023-03-14

请将代码var formData=new FormData(this)中的一行更改为var formData=new FormData($(this)[0]);,然后检查它。

当我们创建FormData的实例时,我们传递的是表单[0],而不是表单。它是实际的表单元素,但不是jQuery选择器。

 类似资料:
  • 本文向大家介绍AJAX提交表单数据实例分析,包括了AJAX提交表单数据实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了AJAX提交表单数据的方法。分享给大家供大家参考。具体如下: 遍历表单各元素,将参数值组织成JSON格式 这里对CheckBox复选框做了特殊处理,后台接收到的该值为所有复选框值用逗号的拼接 AJAX的调用: 谈到服务器端返回的JSON格式数据,支持如下格式 前端调

  • 问题内容: 我正在尝试使用jquery将值提交到数据库。我是ajax的新手,但是我必须使用ajax。 到目前为止,这是我已经完成的PHP代码 我的html代码是 这是我使用jQuery的ajax 我不知道我在做什么错。任何帮助将不胜感激 问题答案: 与其干扰表单的Submit事件,不如点击事件。要对现有设置进行最小的更改,只需将点击处理程序添加到表单提交按钮。处理程序中的第一件事是调用e.prev

  • 所以我有一个网站,我正在建设,它将使用数据库中的数据来填写不同网站上的表格。现在我明白了,这可以很容易地用cURL或python来完成,但是,当我截取和读取post数据时,通常会非常混乱。例如,在此表单中,只有注释和分级选项,但包含所有类型的其他垃圾:

  • 当我提交post方法表单时,给定输入字段值,提交时不获取。如果我在Jquery中使用Ajax调用,那么表单值将序列化并正确提交,但是在javascript中,使用FormData的Ajax调用会出错。 谁能解决我的问题。 错误: > 错误:不能设置报头后,他们被发送。OutgoingMessage.set头(_http_outgoing.js:356: 11) 阿波罗模型拯救未设置键:主键字段:名

  • 问题内容: 我正在尝试使用AJAX技术添加评论,但出现错误: 这是我的代码:View: 控制器: AJAX: 最后一条路线: 任何人都知道问题出在哪里,为什么我不能提交表格? 问题答案: 您没有发布任何数据, 您得到的错误是DB中的列不能为空。 尝试将您的ajax调用更改为此: 改变这个 至 并获取消息和帖子ID: 完成ajax块: 最后,在隐藏字段中添加一个ID: 从Laravel控制器发送回数

  • 我正在尝试在 Java 应用程序中设置一个 Apache Camel 路由,其中使用者终结点是一个 restlet 组件,它将 HTTP 文件上传作为多部分表单数据的 POST 进行处理,然后创建者终结点将请求转发到也接受多部分表单数据的 rest 服务。我是骆驼的新手,不知道如何正确地连接它。以下是到目前为止我的路线。我是否需要对正文进行任何转换,还是会按原样转发多部分表单数据?有人可以为我提供