我如何使用POST方法传递文件数组?

时间:2016-09-16 16:55:41

标签: javascript jquery html arrays ajax

我有一个文件数组,您接收输入类型=文件的文件。我无法使用输入,因为用户必须能够取消文件。我需要使用ajax将此文件数组传递给Java中的webservice。我如何在不使用表单的情况下使用POST方法来使用我的数组?

我的大问题是令牌和标题,这两个需要是动态的我处理形式,但在这种情况下,我不是一个表单,我想花一个在JavaScript中声明的var filearray。我不能使用jQuery库文件上传,因为我需要在用户取消文件后显示其他div中的文件,我不知道如何在其他div中显示文件,因为库在用户选择文件后清理输入。我不知道图书馆把文件放在哪里来处理它们。 " var filearray = []"是一个全局变量。

我的HTML:

<input type="file" id="myFiles" multiple size="50" onchange="myFilesFunction()">

我的JS:

function myFilesFunction(){
var x = document.getElementById("myFiles");
var contfilearray = 0;
for (var i = 0; i < x.files.length; i++) {
    filearray[contfilearray] = x.files[i];
    contfilearray ++;
}}

我的Ajax:

function salvaanexoszip() {
var numeroticket = 12345;
var data = new FormData();
jQuery.each(jQuery(filearray)[0], function(i, file) {
    data.append('file-'+i, file);
});


$.ajax({
    url: 'URL',
    type: 'POST',
    cache: false,
    contentType: false,
    processData: false,
    data: {
        ticket: numeroticket,
        files: data,
    },
    success: function(data) {
        alert("OK");
    },
    error: function (xhr, ajaxOptions, thrownError) {
        alert("NOT OK");
    }
});}

0 个答案:

没有答案