这是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){后面不知道如何处理,才能保存到数据库或者保存到本地
阿神2017-04-17 16:26:11
https://github.com/expressjs/...
https://cnodejs.org/topic/564...
可以参考上面的链接,使用multer
文件的话一般不保存到数据库
迷茫2017-04-17 16:26:11
后端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:\n\n');
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