我想发布多个输入文件(图像)。我使用FormData提交后仅获取一个文件。
uploadCategoryImages = () => {
let formData = new FormData()
let imagefile = document.querySelector('#contained-button-file')
for(let i=0;i<=3;i++)
{
formData.append('image', imagefile.files[i])
console.log(imagefile.files[i])
}
}
答案 0 :(得分:0)
您尚未更改在表单数据中发送的参数名称。请找到以下代码:
uploadCategoryImages = () => {
let formData = new FormData()
let imagefile = document.querySelector('#contained-button-file')
for(let i=0;i<=3;i++)
{
formData.append('image_'+i, imagefile.files[i],imagefile.files[i].name)
console.log(imagefile.files[i])
}
}
答案 1 :(得分:0)
我使用FormData提交后仅获取一个文件。
可能是您误解了问题,并且提交给服务器端的代码仅试图读取一个值。
PHP是一个经典的例子。如果要发布多个具有相同名称的值,则 client 必须使用以[]
结尾的名称:
formData.append('image[]', imagefile.files[i])
…然后将为您提供一个数组:
$array = $_FILES['image']
其他语言通常具有使用不同方法来获取单个值或多个值的表单库。以Perl的CGI模块为例:
formData.append('image', imagefile.files[i])
和
my $value = $q->param('image');
my @values = $q->multi_param('image');