最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何将图像从React应用上传到mongo数据库?

IT培训 admin 8浏览 0评论

如何将图像从React应用上传到mongo数据库?

[尝试从mongodb存储然后访问产品图像并做出反应。但是图像未存储在数据库中。或者说,正确的URL未存储在数据库中。

const multer = require ('multer');
const upload = multer({dest: 'uploads/'});

app.use(express.static('./uploads'));

const ObjSchema = new Schema({
    picture:{
        file:String,
        inputKey:String
    }});

app.get('/admin',(req,res)=>{
    Item.find({}).then((doc)=>{
        console.log(doc)
        res.json(doc);
    })
})

app.post('/admin',upload.single('picture'),(req,res)=>{
    console.log(req.files);
    console.log("Path is:",req.body.picture.file);
    let item = new Item();
    item.picture=req.body.picture;
    item.save();
    res.json(item);
    console.log(item);
})

反应部件:

 AddInfo(info){
    let j = this.state.admin;
    let obj ={picture:null};
    if (info.productPicture.file !== null){
    obj.picture=info.productPicture;

    axios.post('http://localhost:5000/admin',obj).then((res)=>{
      j.push(res.data);

      this.setState({
        products:s,
        admin:j
      });
    });
    }
  }
回答如下:

服务器

//在您的app.js /应用入口点中使用它。

const fileUpload = require('express-fileupload');
app.use(fileUpload({
    limits: {fileSize: 50 * 1024 * 1024},
}));

// API

app.post('/admin',(req, res) => {



    req.files.file.mv('your-file-directory' + file-name, function (err) {
        if (err) {
            console.log(err);
            return;
        }
             console.log("uploaded");

      });

};

client

var formData = new FormData();
var image = document.querySelector('#file');
formData.append("file", image.files[0]);
axios.post('baseurl/admin', formData, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
})

如果无法在服务器中接收图像,请尝试从客户端将'Content-Type'作为undefined发送

如何将图像从React应用上传到mongo数据库?

[尝试从mongodb存储然后访问产品图像并做出反应。但是图像未存储在数据库中。或者说,正确的URL未存储在数据库中。

const multer = require ('multer');
const upload = multer({dest: 'uploads/'});

app.use(express.static('./uploads'));

const ObjSchema = new Schema({
    picture:{
        file:String,
        inputKey:String
    }});

app.get('/admin',(req,res)=>{
    Item.find({}).then((doc)=>{
        console.log(doc)
        res.json(doc);
    })
})

app.post('/admin',upload.single('picture'),(req,res)=>{
    console.log(req.files);
    console.log("Path is:",req.body.picture.file);
    let item = new Item();
    item.picture=req.body.picture;
    item.save();
    res.json(item);
    console.log(item);
})

反应部件:

 AddInfo(info){
    let j = this.state.admin;
    let obj ={picture:null};
    if (info.productPicture.file !== null){
    obj.picture=info.productPicture;

    axios.post('http://localhost:5000/admin',obj).then((res)=>{
      j.push(res.data);

      this.setState({
        products:s,
        admin:j
      });
    });
    }
  }
回答如下:

服务器

//在您的app.js /应用入口点中使用它。

const fileUpload = require('express-fileupload');
app.use(fileUpload({
    limits: {fileSize: 50 * 1024 * 1024},
}));

// API

app.post('/admin',(req, res) => {



    req.files.file.mv('your-file-directory' + file-name, function (err) {
        if (err) {
            console.log(err);
            return;
        }
             console.log("uploaded");

      });

};

client

var formData = new FormData();
var image = document.querySelector('#file');
formData.append("file", image.files[0]);
axios.post('baseurl/admin', formData, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
})

如果无法在服务器中接收图像,请尝试从客户端将'Content-Type'作为undefined发送

发布评论

评论列表 (0)

  1. 暂无评论