gpt4 book ai didi

php - 在 ReactJs 中使用 axios 发送 POST 请求时 $_FILES 为空

转载 作者:行者123 更新时间:2023-12-05 03:51:52 24 4
gpt4 key购买 nike

我有一个文件数组,我想在 php 中检索这些文件以及一些其他字符串参数,当我从 React 中的 FormData 发送文件时,它们被作为 json 接收在 PHP 中:

 "{"dataForm":{"Files":[{"path":"aust.jpeg"}]},"headers":{"content-type":"multipart/form-data"}}"

出于显而易见的原因,我想在 $_FILES 中接收它们,是否可以这样做并在 php 中将其余参数读取为 json?此外,我的 php.ini 已完全配置为允许文件上传

这是 Reactjs 代码:

import axios from 'axios';

const sendMail = (data, uploadedFiles) => {
const dataForm = new FormData();
dataForm['Files'] = uploadedFiles; // Here uploadedFiles is an array of files
console.log(dataForm['Files'])
axios.post('http://localhost/bickdata/mail/SendMail.php', {
dataForm,
headers: {
'content-type': 'multipart/form-data'
}
}) .then(function (response) {
console.log(response);
});
}

提前致谢!

最佳答案

事实证明 axios.post() 默认将所有数据作为 JSON 发送,这就是为什么文件在 php 中没有被解释为文件对象的原因,我对 post 请求做了一些小改动,我终于收到了我的文件,这是更新后的代码:

(我现在只从数组中发送一个文件,但我很确定这对一组文件来说是相同的过程)

  dataForm.append( 
"potato",
uploadedFiles[0],
uploadedFiles[0].name
);

axios({
method: 'post',
url: 'http://localhost/bickdata/mail/SendMail.php',
data: dataForm,
headers: {'Content-Type': 'multipart/form-data' }
})
.then(function (response) {
//handle success
console.log(response);
})
.catch(function (response) {
//handle error
console.log(response);
});

关于php - 在 ReactJs 中使用 axios 发送 POST 请求时 $_FILES 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62604318/

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