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

鍍金池/ 問(wèn)答/HTML/ formdata上傳多個(gè)圖片,為什么不能遍歷

formdata上傳多個(gè)圖片,為什么不能遍歷

for(var _img in img_file){           
    formdata.append('file', img_file[_img]);
}
let files = ctx.request.files;
console.log('files+++:');console.log(files);
    for(let index in files){
        console.log(index);//輸出file[]
        file = files[index];
        console.log('file---:')
        console.log(file)

console.log(index);//輸出file[]
而且files、files[index]是同一個(gè)東西
為什么?
圖片描述

圖片描述

回答
編輯回答
你的瞳

FormData不能通過(guò)實(shí)例的[]或者.獲取屬性,只能通過(guò)get
比如

let form = new FormData()
form.append('prop', 1)
console.log(form.prop)//undefined
console.log(form.get('prop'))

如果需要獲得所有的字段,通過(guò)keys,values等api獲得一個(gè)偽數(shù)組再操作

2017年8月30日 04:39
編輯回答
情未了

解決了

function upload(files,title){  
    let imgList=[],file,url;
    
    files = files['file'];//關(guān)鍵?。。。。?!
    
    if(files.length){//如果是一個(gè)數(shù)組
        for(let index in files){
            file = files[index];     

            url=`uploads/${title}-${file.name}`;
            fs.createReadStream(file.path).pipe(fs.createWriteStream(url))
        
            imgList.push([index,url]);
        }
    }else{   
        file = files;        
        url=`uploads/${title}-${file.name}`;
        fs.createReadStream(file.path).pipe(fs.createWriteStream(url))
        imgList.push([0,url]);
    }
     
     return imgList;
   
}
exports.add = async(ctx, next)=>{
    let {title,body,tags,category}=ctx.request.body;
    let files = ctx.request.files;//重點(diǎn)

    let imgList = upload(files,title);

    let post = new Post({
        title,
        body,
        tags,
        category,
        imgList
    })
    let result= await dbHelper.Save(post);
    ctx.response.body = result;    
}
2018年5月3日 10:41