在Form-data中附加多个图像在Java脚本中工作?

时间:2018-10-11 08:12:36

标签: javascript form-data

我想发布多个输入文件(图像)。我使用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])
    }        
}

2 个答案:

答案 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');