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

将数组的数组追加到FormData并通过AJAX发送

西门飞翮
2023-03-14
let currentObj = this;
let formData = new FormData();
for (var i = 0; i < this.mediaData.length; i++) {
  let file = this.mediaData[i];
  console.log(file, "file");
  formData.append('medias[' + i + ']', , file.file, file.original_file_name, file.function_name);
}
for (var i = 0; i < this.mud_table.name.length; i++) {
  let mud = this.mud_table.name[i];
  formData.append('mud_table[' + i + ']', mud);
}
formData.append('mud_map_status', this.mud.status);
formData.append('mud_map_id', this.mud.id)
formData.append('surveyReportID', this.survey_reporting_id);
mediasData:[function_name:mud_pdf1; original_file_name: recipt_pdf.pdf; file:{File},
function_name:mud_pdf2; original_file_name: recipt_pdf.pdf; file:{File},
function_name:mud_pdf3; original_file_name: recipt_pdf.pdf; file:{File}]

是这种格式,在后端,我只在请求中获得媒体:[File:{File}]格式。我还需要发送“original_file_name”和“function_name”属性。当然,我可以将数组分成3个部分并分别追加它们,但是有没有办法将每个mediasData数组索引的所有there属性发送到formdata数组各自的索引中?

共有1个答案

轩辕翰
2023-03-14

formdata允许您在追加文件时指定文件名,以便处理original_file_name属性。

formData.append(`medias[${i}]`, file.file, file.original_file_name)

PHP可以在$_files['medias']['name'][$index]或任何相关的Laravel抽象中读取它。我肯定它支持文件名。

至于您的其他字段,您唯一真正的选择是添加一个具有相应索引的新数组。您似乎一直试图使用mediasnames这样做,但它看起来更像是

formData.append(`mediaFunctionNames[${i}]`, file.function_name)
let formData = new FormData();
this.mediaData.forEach((file, i) => {
  formData.append(`medias[${i}]`, file.file, file.original_file_name)
  formData.append(`mediaFunctionNames[${i}]`, file.function_name)
})
this.mud_table.name.forEach((mud, i) => {
  formData.append(`mud_table[${i}]`, mud)
})
 类似资料:
  • 问题内容: 我正在使用ajax提交包含数组,文本字段和文件的多部分表单。 我将每个VAR附加到主数据中 然后我使用ajax函数将其发送到PHP文件以存储在sql DB中。 但是在PHP方面,变量(即数组)显示为字符串。 当我不使用ajax作为表单数据发送它,而是使用简单的选项时,确实在PHP端将它作为数组获得,但是后来我也无法发送文件。 有什么办法吗? 问题答案: 您有几种选择: 将其转换为JSO

  • 我正在使用ajax提交一个包含数组、文本字段和文件的多部分表单。 我将每个VAR附加到主数据中,如下所示 然后使用ajax函数将其发送到PHP文件中存储在sql DB中。 但是在PHP端,变量(一个数组)显示为字符串。 当我没有将它作为表单数据与ajax一起发送,而是使用简单的选项时,我会在PHP端将它作为一个数组来获取,但这样我就不能同时发送文件。 有什么解决办法吗?

  • 问题内容: 在名为News的模型中 在Javascript中,我将AJAX post方法与formdata一起使用。我要设置这个区域。 上面我在JS中编写的代码是这样设置的 和上面的代码我将进入控制器。但是,尽管至少我选择了两个区域,但它始终返回0条记录。 我的Ajax方法在上面。我在哪里犯错? 提前致谢。 问题答案: 如果您用于发送数据,则需要将每个单独的名称/值发送给。由于它是一个集合,因此您

  • 问题内容: 我想发送一个用JavaScript构造的数组,其中包含多个select的选定值。有没有一种方法可以使用ajax将此数组发送到php脚本? 问题答案: 您可以使用XML或JSON发回到服务器。您的javascript将必须构造该帖子,在XML的情况下,则需要您在javascript中创建它。JSON不仅轻巧,而且更易于在javascript中制作。签出JSON- PHP 来解析JSON。

  • 问题内容: 我有一个具有形状的数组,以及一个具有形状的数组。 如何将这两个形状附加为一个数组? 我试过了,但它没有保持尺寸,而该选项导致。 问题答案: 用途: 这可以处理数组具有不同维数的情况,并沿第三轴堆叠数组。 否则,要使用或,您必须自己制作三维尺寸并指定要在其上连接的轴:

  • 问题内容: 我设法发送了一个FormData对象,如下所示: 现在,我要做的是添加一个附加值以发送到服务器。以下内容无效: 我还尝试了以下变体: 任何帮助表示赞赏。 问题答案: 尝试: