前端代碼
<li class="block">上傳產(chǎn)品圖片:
<img :src="productImg" alt="real-photo" v-if="productImg">
<input type="file" ref="proupload" name="file" class="detailsImg" id="profile" accept="image/*" >
</li>
<li class="block">上傳產(chǎn)品詳情圖片:
<img :src="preview" alt="real-photo" v-if="preview">
<input type="file" ref="detailsupload" name="file" class="detailsImg" id="file" accept="image/*" >
</li>
getImg(){
var that = this
var proFile = this.$refs.proupload
var detailFile = this.$refs.detailsupload
let pro = new FormData(proFile)
let formData = new FormData(detailFile);
pro.append('file',this.$refs.proupload.files[0]);
formData.append('file',this.$refs.detailsupload.files[0]);
console.log(pro.get('file'));
console.log(formData.get('file'));
var config = {
name:that.productVal,
img:pro.get('file'),
menu: that.menuSele,
list:[
{
productDetails:formData.get('file'),
}
]
}
axios({
method:'post',
url:'/proDetails',
data:config,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
}
})
.then(function(res){
console.log(res)
})
}
}
后端代碼
function(folder){
try{
fs.accessSync(folder);
}catch(e){
fs.mkdirSync(folder);
}
};
var upload = './public/images'
createFolder(upload);
// 通過(guò) filename 屬性定制
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, upload); // 保存的路徑,備注:需要自己創(chuàng)建
},
filename: function (req, file, cb) {
// 將保存文件名設(shè)置為 字段名 + 時(shí)間戳,比如 logo-1478521468943
cb(null, file.fieldname + '-' + Date.now()+'.png');
}
});
// 通過(guò) storage 選項(xiàng)來(lái)對(duì) 上傳行為 進(jìn)行定制化
var uploads = multer({ storage: storage }).any()
var proDetilasSchema = new mongoose.Schema({
name : String,
img : String,
list : [Schema.Types.Mixed]
});
var MyModel = mongoose.model('productDetails', proDetilasSchema);
router.get('/', function(req, res, next) {
return res.status(200).json({msg:'進(jìn)來(lái)了'});
});
router.post('/',uploads, function(req, res, next) {
return res.status(200).json({msg:'1'});
});
module.exports = router;
前端代碼發(fā)送數(shù)據(jù)的formData.get('file') 換成對(duì)應(yīng)的pro和formData 也不行
后端接收的req.body
{"name":"123","img":{},"menu":"123","list":[{"productDetails":{}}]}
為什么formdata是空的,后端如何處理接收過(guò)來(lái)的formdata?
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
北大青鳥(niǎo)中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。