所有分类
  • 所有分类
  • 后端开发
Node.js小白也能学会!Express框架神器multer带你轻松上传照片

Node.js小白也能学会!Express框架神器multer带你轻松上传照片

本文中我们将使用Express框架作为Web服务器,并使用multer模块来处理文件上传。文件上传的基本用法如果我们想实现对上传的文件名进行限制,我们可以使用multer的fileFilter方法来实现。在上述示例中,我们增加了一个file

咱们今儿个就来聊聊怎么把照片传到网上去!其实用Node.js也挺容易的,就是掌握几个模块和技术就能搞定。下面咱们说说Express框架里的图片上传技巧,还有设置上传文件大小和名字的小窍门哦~

安装依赖模块

搞定文件上传这回事儿,咱得搞定几个关键点。咋起步?先搭个简单的服务器,用不用Express都行;然后,用上multer这个神器来搞定文件上传就行。别急着动,干活前还是老老实实的把Express和multer给npm装好

npm install express multer --save

文件上传的基本用法

学Express框架文档上传很简单,学学好multer这个东西就行了。我们经常用它的upload.single方法,一传文件上去,服务器立马就能知道,还会告诉你“文件上传成功”!

文件大小限制

传文件,设个上限制,啥尺寸都不用操心了,服务器稳如泰山。碰上超大文件?别慌,multer帮你堵截,告诉你问题出在哪儿。

const express = require('express');
const multer  = require('multer');
const app = express();
const upload = multer({ dest: 'uploads/' });
app.post('/upload', upload.single('file'), function(req, res) {
    res.send('文件上传成功!');
});
app.listen(3000, function() {
    console.log('服务器已启动,端口号:3000');
});

文件名称限制

传文件别光看大小还有个重要的点——名字要对。multer这个小帮手就能搞定这事儿。它的fileFilter就是个厉害的功能,可以根据你设定的规则给上传的文件取个好记的名字。这样方便你存起来,还能让文件整齐有序。

安全性考量

Node.js小白也能学会!Express框架神器multer带你轻松上传照片

记住,我们不仅要关注功能怎么做,还要注意系统安全呐。收集信息时得小心谨慎,筑起高墙防范别有用心的人偷偷搞破坏。他们可能会悄悄修改请求或者插入恶意代码,导致系统无法正常运转,重要信息很容易泄露出去!

const upload = multer({
  dest: 'uploads/',
  limits: {
    fileSize: 1024 * 1024 //限制1M
  }
});

生产环境建议

记住开电脑前要测试下文件传输!当然,得给电脑做好保护措施,比如说,上传选择HTTPS更稳妥,访问权限也得设置好,没用的就赶紧删掉,这些小技巧挺管用的哈。

适用性与灵活性

app.post('/upload', upload.single('file'), function(req, res) {
    // 文件大小超出限制
    if (req.file.size > 1024 * 1024) {
        return res.status(400).send('文件大小不能超过1M');
    }
    res.send('文件上传成功!');
});

了解过Express和multer吗?超级容易上手!不论你想要怎么玩,都能加上新的花样。例如,修改上传页面,看起来更舒服;再比如,缩小图片大小节省空间;或者允许用户上传各种图片格式,既方便又实用。这样一来,用户体验和软件功能就能一举两得~

持续优化与改进

科技进步飞快,大家对上传文件有更多需求,这个功能当然得换换了。看看现在更新速度这么快,咱们得跟上节奏,多听使用者的声音。这样做出来的功能好用又快。只有不断改进,咱们的系统才能保持领先地位!

社会责任与合规要求

干合规可不马虎!啥是社会责任?合规又咋回事儿?还有搞软件开发可得弄清楚,就是要好好保护用户隐私。比如说,上传文件这种事儿,千万别忘了规矩,保证数据安全。

const storage = multer.diskStorage({
    destination: function(req, file, cb) {
        cb(null, './uploads')
    },
    filename: function(req, file, cb) {
        // 只允许上传后缀名为jpg, jpeg和png的文件
        if (!/.(jpg|jpeg|png)$/.test(file.originalname)) {
            return cb(new Error('只能上传jpg, jpeg和png格式的图片'));
        }
        //自定义文件名称
        let timestamp = Date.now();
        cb(null, timestamp + '.' + file.originalname.split('.').pop());
    }
});
const upload = multer({
    storage: storage,
    limits: {
        fileSize: 1024 * 1024 //限制1M
    },
    fileFilter: function(req, file, cb) {
        // 检查文件类型
        if (!file.originalname.match(/.(jpg|jpeg|png)$/)) {
            return cb(new Error('只能上传jpg, jpeg和png格式的图片'));
        }
        // 继续上传
        cb(null, true);
    }
});
app.post('/upload', upload.single('file'), function(req, res) {
    res.send('文件上传成功!');
});

原文链接:https://www.icz.com/technicalinformation/web/2024/04/15657.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?