问题描述
这是reactnative的代码
uploadImage(imageuri){let formData = new FormData();let file = {uri: imageuri,type:’multipart/form-data’,name:’image.png’};formData.append(’files’,file);fetch(’http://127.0.0.1:8080/image’,{ method:’POST’, headers:{’Content-Type’:’multipart/form-data’, }, body:fromData,}) .then((response)=>response.text()) .then((responseData)=>{ console.log(’responseData’,responseData); }) .catch((error)=>{console.error(’error’,error)}); }
后端 express
app.post(’/image’,function(req,res){后面不知道如何处理,才能保存到数据库或者保存到本地
问题解答
回答1:https://github.com/expressjs/...
https://cnodejs.org/topic/564...
可以参考上面的链接,使用multer
文件的话一般不保存到数据库
回答2:后端express 打印req.body,看看req.body.files有没有值,这个值是一个对象,包含你上传的文件相关信息,文件名,大小等,然后从中提取并存到你想存的文件夹。 formidable中间件,express底层就是用它实现的。以下是官方例子。
var formidable = require(’formidable’), http = require(’http’), util = require(’util’);http.createServer(function(req, res) { if (req.url == ’/upload’ && req.method.toLowerCase() == ’post’) { // parse a file upload var form = new formidable.IncomingForm(); form.parse(req, function(err, fields, files) { res.writeHead(200, {’content-type’: ’text/plain’}); res.write(’received upload:nn’); res.end(util.inspect({fields: fields, files: files})); }); return; } // show a file upload form res.writeHead(200, {’content-type’: ’text/html’}); res.end( ’<form action='/upload' enctype='multipart/form-data' method='post'>’+ ’<input type='text' name='title'><br>’+ ’<input type='file' name='upload' multiple='multiple'><br>’+ ’<input type='submit' value='Upload'>’+ ’</form>’ );}).listen(8080);
soonfy