搜索

首页  >  问答  >  正文

node.js - react native通过image-picker选择了图片并通过fetch上传,后端nodejs怎么接?

这是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中文网2782 天前752

全部回复(2)我来回复

  • 阿神

    阿神2017-04-17 16:26:11

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

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

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

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

    回复
    0
  • 迷茫

    迷茫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

    回复
    0
  • 取消回复