node.js - react native通过image-picker选择了图片并通过fetch上传,后端nodejs怎么接?
PHP中文网
PHP中文网 2017-04-17 16:24:11
0
2
751

这是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){后面不知道如何处理,才能保存到数据库或者保存到本地
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
阿神

https://github.com/expressjs/...

https://cnodejs.org/topic/564...

可以参考上面的链接,使用multer

文件的话一般不保存到数据库

迷茫

后端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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板