首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送带有输入文件值的数组

发送带有输入文件值的数组
EN

Stack Overflow用户
提问于 2022-11-22 16:43:45
回答 1查看 35关注 0票数 0

好日子我从javascript发送一个数组,其中包含一个文件类型输入的图像,我需要知道如何在php中处理这个数组。我得到的数组是类型:

我的php代码是

代码语言:javascript
复制
<?php       
$data = json_decode($_POST["data"],true);      
print_r($data);

我的javascript代码是

代码语言:javascript
复制
         let warranty = {};
          warranty.description = document.getElementById("txt_description").value;
          warranty.brand = document.getElementById("txt_marca").value;
          warranty.serie = document.getElementById("txt_serie").value;
          warranty.model = document.getElementById("txt_model").value;
          warranty.color = document.getElementById("txt_color").value;
          warranty.time_use = document.getElementById("txt_year_use").value;
          warranty.status = document.getElementById("dp_status").value;
          warranty.location = document.getElementById("dp_location").value;
          warranty.price = document.getElementById("txt_price").value;
          warranty.img = imgInput.files[0];
          warranties.push(warranty);
          let datos = new FormData();
         datos.append("data",JSON.stringify(warranties));`

我试过了

代码语言:javascript
复制
$img = $data[0]['img']; 
$file = $_FILES[$img]['tmp_name']; 

但它发送给我的错误索引没有找到

EN

回答 1

Stack Overflow用户

发布于 2022-11-22 16:56:24

文件对象不能压缩到JSON。您需要将它们直接附加到FormData对象中。

您可能应该完全忘记使用JSON,然后执行以下操作:

代码语言:javascript
复制
const datos = new FormData();
warranties.forEach((warranty, index) => {
    Object.entries(warranty).forEach(([key, value]) => {
        datos.append(`data[${index}][${key}]`, value);
    });
});

然后这些文件将出现在$_FILES中,其余的数据将出现在$_POST中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74536205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档