首页 > 解决方案 > Jquery:$_Files 中的 Formdata 文件字段为空

问题描述

我发布formdata如下

let redirecturl="<?=base_url()?>admin/forms";
let formData = new FormData()
let posturl = " <?=base_url() . 'admin/forms/post_values';?>";
var filepath = document.getElementById("institute_systemlogo").value;
/*formData.append('file',d);*/
formData.append('form',JSON.stringify(FormArray));
formData.append('file', filepath);
$.ajax(posturl, {
    type: 'POST',
    data: formData,
    enctype: 'multipart/form-data',
    async: false,
    cache: false,
    contentType: false,
    processData: false
}, function (response) {
    console.log(response);
});

并接收过帐值$_POST$_FILES

如果我在我的formdata中执行console.log,如下所示

console.log(formData.get("file")+"file here ");
console.log(formData.get("form")+"form here ");

我在控制台中获取数据如下

C:\fakepath\logo.png file here 
{"field_type":"date","field_label":"dfdf","field_options":"","is_required":false}]form here 

现在的问题是,当我收到$_Files它的空$_POST值时,请帮助我在这里做错了什么

标签: javascripthtmljqueryajax

解决方案


假设#institute_systemlogo元素是input type="file",那么您需要上传文件,而不是通常保存在value. 尝试这个:

var filepath = document.getElementById("institute_systemlogo").files[0];

这也假设已选择一个文件,并且您只需要一个文件。在这些情况下,您将需要一些验证和/或循环。


推荐阅读