Maison > Article > interface Web > Angular2+nodejs crée un effet de téléchargement d'image
Cette fois, je vais vous apporter angulaire2+nodejs pour créer l'effet de téléchargement d'image. Quelles sont les précautions pour angulaire2+nodejs pour créer l'effet de téléchargement d'image. Ce qui suit est un cas pratique, prenons un. regarder.
code back-end nodejs
代码如下 varexpress = require("express"); //网络请求模块 varrequest = require("request"); //引入nodejs文件系统模块 const fs = require('fs'); //引入body-parser //包含在请求正文中提交的键/值对数据。 //默认情况下,它是未定义的,并在使用body-parser中间件时填充。 varbodyParser = require('body-parser'); varapp = express(); //解析 application/x-www-form-urlencoded,limit:ཐmb'用于设置请求的大小 //解决nodejs Error: request entity too large问题 app.use(bodyParser.urlencoded({ limit:ཐmb',extended:true})); //设置跨域访问 app.all('*',function(req, res, next) { res.header("Access-Control-Allow-Origin","*"); res.header("Access-Control-Allow-Headers","X-Requested-With"); res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); res.header("Content-Type","application/json;charset=utf-8"); next(); }); //上传图片 app.post('/upload',function(req,res){ varimgData = req.body.url; varbase64Data = imgData.replace(/^data:image\/\w+;base64,/,""); vardataBuffer =newBuffer(base64Data,'base64'); fs.writeFile("image.png", dataBuffer,function(err) { if(err){ res.send(err); }else{ res.send("保存成功!"); } }); }) varserver = app.listen(4444,function() { console.log('监听端口 4444'); });
code front-end angulaire2
//上传图片 /* * let data = { * size: �', * type: 'image/jpeg', * name: 'test.jpg', * url: base64 * }; *获取图片的base64码可以通过FileReader获取 */ uploadImage(data) { returnnewPromise((resolve, reject) => { let headers =newHeaders({ 'Content-Type':'application/x-www-form-urlencoded' }); let options =newRequestOptions({ headers: headers }); this.http.post("http://localhost:4444/upload",this.toQueryString(data),options) .map(res => res.json()) .subscribe(data => { resolve(data), error => { reject(error) } }) }) } // JSON参数序列化 private toQueryString(obj) { let result = []; for(let keyinobj) { key = encodeURIComponent(key); let values = obj[key]; if(values && values.constructor == Array) { let queryValues = []; for(let i = 0, len = values.length, value; i < len; i++) { value = values[i]; queryValues.push(this.toQueryPair(key, value)); } result = result.concat(queryValues); }else{ result.push(this.toQueryPair(key, values)); } } returnresult.join('&'); } private toQueryPair(key, value) { if(typeofvalue =='undefined') { returnkey; } returnkey +'='+ encodeURIComponent(value ===null?'': String(value)); }
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. contenu plus excitant, veuillez faire attention aux autres sites Web chinois php Articles connexes !
Lecture recommandée :
Implémentation JS de la fenêtre contextuelle d'enregistrement de connexion par menu déroulant
Comment gérer le flottant piraté http annonces
Résumé des méthodes pour améliorer les performances de Node.js
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!