在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 關(guān)于一個(gè)循環(huán)

關(guān)于一個(gè)循環(huán)

login:function(data){

    let fd=new FormData()
    for(var key in data){
        fd.append(key,data[key])
    }
    console.log(fd)
 }
 
 

傳入data之后 一直輸出空的FormData對(duì)象

回答
編輯回答
別瞎鬧

FormData打印出來是一個(gè)空的Objet,但并不是說它的內(nèi)容是空的,只是它對(duì)前端開發(fā)人員是透明的,無法查看、修改、刪除里面的內(nèi)容,只能append添加字段。

FormData無法得到文件的內(nèi)容,而使用FileReader可以讀取整個(gè)文件的內(nèi)容。用戶選擇文件之后,input.files就可以得到用戶選中的文件,如下代碼:

$("#file-input").on("change", function() {
    let fileReader = new FileReader(),
        fileType = this.files[0].type;
    fileReader.onload = function() {
        if (/^image/.test(fileType)) {
            // 讀取結(jié)果在fileReader.result里面
            $(`<img src="${this.result}">`).appendTo("body");
        }
    }
    // 打印原始File對(duì)象
    console.log(this.files[0]);
    // base64方式讀取
    fileReader.readAsDataURL(this.files[0]);    
});

把原始的File對(duì)象打印出來是這樣的:

它是一個(gè)window.File的實(shí)例,包含了文件的修改時(shí)間、文件名、文件的大小、文件的mime類型等。如果需要限制上傳文件的大小就可以通過判斷size屬性有沒有超,單位是字節(jié),而要判斷是否為圖片文件就可以通過type類型是否以image開頭。

參考這篇文章

前端本地文件操作與上傳

2017年5月11日 14:38
編輯回答
葬愛

其實(shí)對(duì)象里內(nèi)容是有的,只不過它不像json一樣可以直接在控制臺(tái)log出來而已。

var data = {
  text: '123',
  phone: 'asdasd'
};
let fd=new FormData();
for(var key in data){
  fd.append(key,data[key]);
}
console.log(fd.get('text'));

你用get方法試試FormData.get()

2017年3月15日 05:49
編輯回答
我以為

確實(shí)上面的回答也說明了. 這說明 FormData 類的 toString() 方法沒有實(shí)現(xiàn)得友好.
除了上面提取的 FormData.get 還有一個(gè) FormData.getAll

示例如下:

function debugLogin(data){
    let fd = new FormData()
    for(var key in data){
        fd.append(key,data[key])
    }
    console.log(fd.getAll("name"))
    console.log(fd.getAll("age"))
}

debugLogin({
    name:"banxi",
    age: 18
})
2018年1月18日 20:18