gpt4 book ai didi

javascript - 使用 processData 和 contentType 时 Ajax 响应为 0。输入 ='file[]'

转载 作者:行者123 更新时间:2023-11-30 17:06:03 26 4
gpt4 key购买 nike

html:

<input id="fileSelect" type="file" name="files[]" multiple="multiple" accept="image/*" />

js:

alert( filesArray );
3 three images.//
// [object File],[object File],[object File]

// new FormData object.
var formData = new FormData();
formData.append( 'files[]', filesArray );

jQuery.ajax
({
url: ajaxurl, // uploadfile.php
type: "POST",
data: {
action: 'auto_post',
form_data: formData
},
processData: false,
contentType: false,
success: function( data )
{
alert( data );
},
error: function( data )
{ }
});

当我不使用时:

processData: false,
contentType: false,

我得到:(错误)

TypeError: 'append' called on an object that does not implement interface FormData.

现在怎么办?我需要使用 ajax 将 formData 发送到 php 服务器端。

上传文件.php

我需要像这样访问:

$_FILES["files"]["name"];

Ajax 数据从这里获取:

// Ajax Funtion.
function aap_auto_post()
{
echo $_FILES['files']['name'];
die();
}
add_action( 'wp_ajax_auto_post', 'aap_auto_post' );
add_action( 'wp_ajax_nopriv_auto_post', 'aap_auto_post' );

最佳答案

ajax 请求中发送的所有值都必须附加到 FormData 对象,而不仅仅是文件。此外,文件必须单独添加。

var formData = new FormData();
for (var i = 0; i < filesArray.length; i++){
formData.append( 'files[]', filesArray[i]);
}
formData.append( 'action', 'auto_post');
...
data: formData,

关于javascript - 使用 processData 和 contentType 时 Ajax 响应为 0。输入 ='file[]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28002627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com