FormData上传文件时后端收不到file字段怎么办?
我用FormData上传图片,前端明明append了file,但后端PHP一直拿不到$_FILES里的数据,试了好多次都不行。
我检查了请求头Content-Type是multipart/form-data,也确认了input的type是file,还用了new FormData(),但就是传不过去。是不是哪里漏了?
const fileInput = document.querySelector('#avatar');
const formData = new FormData();
formData.append('file', fileInput.files[0]);
fetch('/upload.php', {
method: 'POST',
body: formData
});
试试这样改:
或者更简单点,直接把headers那部分去掉也行,因为FormData对象会自动处理这些。我之前就被这个坑过,明明觉得都写对了却死活传不上去,后来发现是fetch太"智能"了。
另外记得检查下后端PHP的配置,确保upload_max_filesize和post_max_size够大,不然文件大了也传不上去。