node.js - nodejs - upload image with node js
Limite dinámicamente el tamaño del archivo de carga en Express(node.js) (2)
Estoy desarrollando una aplicación simple que permitirá a los usuarios subir su contenido. Quiero limitar el tamaño del archivo que Express aceptará. Sé que puedo usar
app.use(express.limit(''2mb''));
pero quiero cambiar el límite de forma dinámica . Ciertos usuarios tendrán límites más altos.
La mejor solución sería PRIMERO verificar el encabezado de content-length
del content-length
y LUEGO comenzar a analizar la carga si el tamaño del archivo está por debajo del límite, pero Express guarda automáticamente las cargas de archivos en el disco (directorio / tmp). Entonces, si alguien envía un archivo de 1GB, este archivo será analizado y guardado en el disco incluso cuando no lo quiera permitir.
¡Gracias por adelantado!
Agregar límite () antes de agregar bodyParser (), por ejemplo:
app.use(express.limit(100000));
app.use(express.bodyParser({uploadDir: ''/tmp'', keepExtensions:true}));
De esta forma, el archivo cargado no se guardará en / tmp cuando sea demasiado grande.
Express básicamente utiliza middleware de límite () de connect.
Por lo tanto, es posible que desee escribir su propio middleware en lugar de usar el límite predeterminado ().
Puede comenzar mirando el código fuente de limit () aquí https://github.com/senchalabs/connect/blob/2.24.2/lib/middleware/limit.js#L40