使用快速js中的mysql上传文件

时间:2018-03-13 06:45:19

标签: mysql node.js express

目前我正在使用Express 4.x做一些项目,并且在项目中似乎想要处理文件上传(例如:在表单上上传图像)。我使用localhost作为服务器(mysql),搜索线索大多数人使用multer但我无法得到。任何帮助,我很欣赏

1 个答案:

答案 0 :(得分:0)

Formidable可帮助您解析并从POST请求中获取文件

示例代码:

const formidable = require('formidable');
const fs = require('fs');
const path = require('path');

// POST | /upload

app.post('/upload', (req, res) => {
  const form = new formidable.IncomingForm();
  form.parse(req, (error, fields, files) => {
    if(error){
      res.status(500);
      console.log(error);
      res.json({
        error,
      });
      return false;
    }
    
    const image = files.image;
    console.log(image.name) // pony.png
    console.log(image.type) // image/png
    
    // Get the tmp file path
    const tmpFilePath = image.path; // /tmp/<randomstring>
    
    // Rename and relocate the file
    fs.rename(tmpFilePath, path.join(`${__dirname}/uploads/${image.name}`), error => {
      if(error){
        res.status(500);
        console.log(error);
        res.json({
          error,
        });
        return false;
      }
      res.status(201);
      res.json({
        success: true,
        upload_date: new Date(),
      });
      // Do all kinds of MySQL stuff lol
    });
  });
});