Tabla de contenido
prefacio
Al cargar archivos, usaremos el formato de cuerpo de solicitud de datos de formulario/multiparte, y el middleware express.urlencoded() no puede analizar datos en este formato, por lo que debemos encontrar un formato que pueda analizar el paquete de datos de formulario/multiparte, multer se recomienda aquí, dirección npm : multer - npm
descargar
npm install --save multer
usar
Carga de un solo archivo:
Para facilitar la interpretación del código, aquí no hay un enfoque modular.
const express = require('express');
const router = express.Router();
const multer = require('multer')
const path = require('path')
const upload = multer({dest: path.join(__dirname, '../../uploads')}) // 要存放文件的路径
router.post('/api/upload/file', upload.single('image'), (req, res) => {
console.log(req.body)
console.log(req.file)
res.send('success')
})
module.exports = router
Solicitar prueba con cartero
Imprimir resultado:
De esta forma, obtenemos la información del archivo subido y los parámetros adicionales que pasamos
Carga de varios archivos
//注意看取值变量
router.post('/api/upload/files', upload.array('image'), (req, res) => {
console.log(req.body)
console.log(req.files)
res.send('success')
})
prueba de solicitud de cartero
Impresiones de la consola:
resultado
Podemos ver el directorio de subidas en el proyecto, que contiene los archivos que subimos. De acuerdo con su propio proyecto, ¿dónde están las subidas?