繁体   English   中英

如何从 javascript 中的 FormData 获取数据?

[英]How can i get data from FormData in javascript?

我需要从 FormData 中读取数据吗? 我尝试阅读someFormatData["valueName"]之类的内容,但它不起作用。 options["fileId"]options["file"]不起作用。 我也尝试options.fileId相同的结果:

function upload(file, fileId, callback) {
    var formData = new FormData();
    formData.append("file", file);
    formData.append("fileID", fileId);

    $.ajax({
        url: '/url',
        type: 'POST',
        data: formData,
        processData: false,
        contentType: false,
        success: function(response) {
            callback(response);
        }
    });
}


asyncTest("test upload chunk", function() {
    var blob = new Blob(["Hello world!"], { type: "text/plain" }),        
        options = null,
        fileID ="someFileID",
        response;

    jQuery.ajax = function(param) {
        options = param;   // THIS is FormData object 
        // how to read fileId and file from here
    };

    upload(blob, fileID, function (data) {
        response = data;  
    });

    options.success({
        someProp: 'responseFromServer'
    });

    setTimeout(function() {
        QUnit.equal(options, "dataTosend", "parameters is OK");
        QUnit.equal(response["someProp"], "responseFromServer", "Response ok");
        start();
    },1000);
});

如果您使用FormData对象,则可以在其上使用几种不同的方法……您正在寻找的是

formData.get()

或者

formData.getAll()

https://developer.mozilla.org/en-US/docs/Web/API/FormData

请注意,并非所有浏览器都完全支持get()方法。

您可以使用此阅读

formData.get('fileId') // to read Id
formData.get('file') // to read the file 

列出 FormData 的所有条目的另一种方法:

for(const entry of formData){
  console.log(entry); // Array: ['entryName', 'entryValue']
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM