使用 processData 和 contentType 时的 Ajax 响应为 0.输入='文件[]'
Ajax response 0 when using processData and contentType. Input='file[]'
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,
使用 id 选择表单,如下所示
$('form#YOUR_FORM_ID').submit(function(e){
e.preventDefault();
var formData = new FormData($(this)[0]);
$.ajax({
url: 'YOUR_SERVER_URI',
type: 'POST',
data: formData,
async: true,
success: function (data) {
alert(data);
},
cache: false,
contentType: false,
processData: false
});
return false;
});
这也将在服务器端处理 _FILES 美元。像往常一样做。
相关文章:
- Javascript,文件输入和FormData问题
- Javascript获取具有不同id的文件数's来自没有多个属性的文件输入元素
- 访问javascript文件输入变量的值
- 从IE中的不同元素调用时,文件输入控件未正确启动
- 多次打开多个文件输入,而不会丢失以前选择的文件
- jquery形成多文件输入字段Value()
- 如何从 Chrome 中的文件输入中删除“未选择文件”工具提示
- 如果从文件输入按钮调用 .ajaxSubmit() 时,它是必需的表单
- 生成由文件输入在特定时间选择的视频文件的缩略图/快照
- 使用javascript获取文件输入
- krajee引导程序文件输入上传
- on('change')不适用于动态添加的文件输入
- 选择要初始化精细上传器的文件输入
- 在DOM中以img的形式插入文件输入
- 单击跨度内的隐藏文件输入会导致RangeError
- 显示当前文件输入有文件后的下一个文件输入
- Krajee文件输入小部件'上传'方法引发异常
- 在引导文件输入中通过post发送一个额外的变量
- 引导文件输入
- 为什么在文件输入上触发点击事件也会在表单上触发提交事件