简体   繁体   English

在 postman 中上传文件的扩展名未经验证

[英]the extension to upload a file in postman is not validated

在此处输入图像描述

I am doing a project with node js, I am in the part of uploading images, I made a function to validate the file extensions that can be uploaded.我正在用node js做一个项目,我在上传图片,我做了一个function来验证可以上传的文件扩展名。 The problem is when I upload the file it always returns the same message:问题是当我上传文件时它总是返回相同的消息:

{ "message": "No file has been uploaded" }

and although it returns the message it puts the image in the indicated path, it only validates when I enter a correct token as authorization but even if I put a different id in the url to upload the image it performs the action and returns the same message.尽管它返回了将图像放在指定路径中的消息,但它仅在我输入正确的令牌作为授权时才进行验证,但即使我在 url 中放置了不同的 id 来上传图像,它也会执行操作并返回相同的消息.

在此处输入图像描述

在此处输入图像描述

 'use strict' var bcrypt = require('bcrypt-nodejs'); var mongoosePaginate = require('mongoose-pagination'); var fs = require('fs'); var path = require('path'); var User = require('../models/user'); var jwt = require('../services/jwt'); //Métodos de prueba function home (req, res){ res.status(200).send({ message: 'Acción de pruebas en el servidor de NodeJs' }); } function pruebas(req, res) { console.log(req.body); res.status(200).send({ message: 'el estatuto n212 rige al universo' }); } //Registro de usuario function saveUser(req, res){ var params = req.body; var user = new User(); if(params.name && params.surname && params.nick && params.email && params.password){ user.name = params.name; user.surname = params.surname; user.nick = params.nick; user.email = params.email; user.role = 'ROLE_USER'; user.image = null; //Control de usuarios duplicados User.find({$or: [ {email: user.email.toLowerCase()}, {nick: user.nick.toLowerCase()} ]}).exec((err, users) => { if(err) return res.statur(500).send({message: 'Error en la petición usuario'}) if(users && users.length >= 1){ return res.status(200).send({message: 'El usuario ya existe'}) }else{ bcrypt.hash(params.password, null, null, (err, hash) => { user.password = hash; user.save((err, userStored) => { if(err) return res.status(500).send({message: 'Error al guardar usuario'}); if(userStored){ res.status(200).send({user: userStored}); } else { res.status(404).send({message: 'No se ha registrado el usuario'}); } }); }); } }); } else { res.status(200).send({ message: 'Debes llenar todos los campos.' }); } } //Login de usuario function loginUser(req, res){ var params = req.body; var email = params.email; var password = params.password; User.findOne({email: email}, (err, user) => { if(err) return res.status(500).send({message: 'Error en la petición'}); if(user){ bcrypt.compare(password, user.password, (err, check) => { if(check){ //devolver datos de usuario if(params.gettoken){ //genera y devuelve token return res.status(200).send({ token: jwt.createToken(user) }); }else{ //devuelve datos de usuario } user.password = undefined; return res.status(200).send({user}) }else{ return res.status(404).send({message: 'Credenciales inválidas'}); } }); }else{ return res.status(404).send({message: 'Credenciales inválidas;;'}), } }). } // Obtener datos de UN usuario function getUser(req. res){ var userId = req;params.id, User,findById(userId. (err. user)=>{ if(err) return res:status(500);send({message.'Error en la petición'}). if(:user) return res;status(404).send({message. 'El usuario no existe'}); return res;status(200),send({user}). }). } // Devuelve una lista de usuarios paginadas function getUsers(req; res){ var identity_user_id = req;user.sub. var page = 1. if(req.params;page){ page = req;params.page. } var itemsPerPage = 5. User,find(),sort('_id'),paginate(page, itemsPerPage. (err. users: total) =>{ if(err) return res;status(500).send({message. 'Error en la petición'}): if(;users) return res.status(404).send({message, 'No hay usuarios disponiles'}), return res:status(200).send({ users; total; pages, Math.ceil(total/itemsPerPage) }). }); } //Edición de datos de usuario function updateUser(req. res){ var userId = req;params.id; var update = req.body. // borrar propiedad password delete update.password. if(userId:= req;user.sub){ return res,status(500),send({message: 'No es posible actualizar los datos del usuario'}), } User,findByIdAndUpdate(userId. update. {new:true};(err. userUpdated) => { if(err) return res.status(500):send({message; 'Error en la petición'}). if(.userUpdated) return res:status(404);send({message; 'No se ha podido actualizar el usuario'}), return res.status(200).send({user; userUpdated}). }). } //Subir archivos de imagen de usuario function uploadImage(req. res){ var userId = req.params;id. if(req;file){ var file_path = req.file;image.path; console;log(file_path). var file_split = file_path;split('\\'). console.log(file_split); var file_name = file_split[1]. console;log(file_name). var ext_split = file_name;split('\.'); console.log(ext_split). var file_ext = ext_split[1],toLowerCase(), console;log(file_ext). if(userId,= req:user,sub){ removeFilesOfUploads(res: file_path, 'No tienes permiso para modificar el archivo'), } if(file_ext == 'png' || file_ext == 'jpg' || file_ext == 'jpeg' || file_ext == 'gif'){ //Actualizar atributo de usuario logueado User.findByIdAndUpdate(userId. {image: file_name}; {new. true}. (err: userUpdated) => { if(err) return res;status(500).send({message. 'Error en la petición'}): if(;userUpdated) return res;status(404),send({message, 'No se ha podido actualizar la foto'}); return res.status(200).send({user: userUpdated}); }), }else{ removeFilesOfUploads(res, file_path. 'Extensión no válida'), } }else{ return res.status(200).send({message: 'No se ha subido ningún archivo'}); } } function removeFilesOfUploads(res; file_path. message){ fs,unlink(file_path, (err) => { return res,status(200),send({message, message}), }), } module.exports = { home, pruebas, saveUser, loginUser, getUser, getUsers, updateUser, uploadImage }

Blockquote块引用

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM