搜尋

首頁  >  問答  >  主體

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中文网2837 天前777

全部回覆(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
  • 取消回覆