• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    使用Node.js制作图片上传服务的详细教程

    发布者: 天下网吧 | 发布时间: 2025-6-16 07:36| 查看数: 72| 评论数: 0|帖子模式

    准备工作

    我们将使用 Express 框架来搭建 Web 服务器,并借助 multer 中间件处理文件上传。首先,确保你已经安装了 Node.js 和 npm。然后,创建一个新的项目目录,并在该目录下初始化一个新的 Node.js 项目:
    1. mkdir image-upload-service
    2. cd image-upload-service
    3. npm init -y
    复制代码
    接着,安装 Express 和 multer:
    1. npm install express multer
    复制代码
    搭建 Express 服务器

    在项目目录中创建一个app.js文件,开始编写 Express 服务器代码:
    1. const express = require('express');
    2. const app = express();
    3. const port = 3000;
    4. app.get('/', (req, res) => {
    5.     res.send('图片上传服务');
    6. });
    7. app.listen(port, () => {
    8.     console.log(`服务器运行在 http://localhost:${port}`);
    9. });
    复制代码
    此时,运行node app.js,在浏览器中访问http://localhost:3000,应该能看到 “图片上传服务” 的提示。

    配置 multer 进行图片上传

    multer 是一个用于处理multipart/form-data类型表单数据的中间件,非常适合处理文件上传。在app.js中配置 multer:
    1. const multer = require('multer');
    2. // 配置multer存储引擎,这里使用本地存储
    3. const storage = multer.diskStorage({
    4.     destination: function (req, file, cb) {
    5.         cb(null, 'uploads/'); // 上传文件存储目录
    6.     },
    7.     filename: function (req, file, cb) {
    8.         const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9);
    9.         cb(null, file.fieldname + '-' + uniqueSuffix + '.' + file.originalname.split('.').pop()); // 生成唯一文件名
    10.     }
    11. });
    12. const upload = multer({ storage: storage });
    复制代码
    上述代码中,我们定义了一个本地存储引擎,将上传的图片存储在uploads/目录下,并为每个上传的文件生成一个唯一的文件名。

    处理图片上传请求

    接下来,添加一个路由来处理图片上传请求:
    1. app.post('/upload', upload.single('image'), (req, res) => {
    2.     if (!req.file) {
    3.         return res.status(400).send('没有选择要上传的文件');
    4.     }
    5.     res.send('文件上传成功');
    6. });
    复制代码
    这里使用upload.single('image')中间件来处理单个名为image的文件上传。如果没有文件被选中,返回 400 状态码。

    完整代码示例

    以下是完整的app.js代码:
    1. const express = require('express');const app = express();const port = 3000;const multer = require('multer');const storage = multer.diskStorage({    destination: function (req, file, cb) {        cb(null, 'uploads/');    },    filename: function (req, file, cb) {        const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9);        cb(null, file.fieldname + '-' + uniqueSuffix + '.' + file.originalname.split('.').pop());    }});const upload = multer({ storage: storage });app.get('/', (req, res) => {    res.send('图片上传服务');});app.post('/upload', upload.single('image'), (req, res) => {
    2.     if (!req.file) {
    3.         return res.status(400).send('没有选择要上传的文件');
    4.     }
    5.     res.send('文件上传成功');
    6. });app.listen(port, () => {    console.log(`服务器运行在 http://localhost:${port}`);});
    复制代码
    测试图片上传服务

    你可以使用 Postman 或编写一个简单的 HTML 表单来测试这个图片上传服务。例如,创建一个index.html文件:
    1. <!DOCTYPE html>
    2. <html>
    3. <body>
    4.     <h2>上传图片</h2>
    5.     <form action="http://localhost:3000/upload" method="post" enctype="multipart/form-data">
    6.         <input type="file" name="image">
    7.         <input type="submit" value="上传">
    8.     </form>
    9. </body>
    10. </html>
    复制代码
    在浏览器中打开index.html,选择一张图片并点击上传,应该能看到 “文件上传成功” 的提示,并且在uploads/目录下会生成上传的图片文件。
    通过以上步骤,我们成功地在 Node.js 中搭建了一个图片上传服务。你可以根据实际需求进一步扩展和优化这个服务,例如添加文件大小限制、图片格式校验等功能。希望本文能帮助你在项目中顺利实现图片上传功能。
    以上就是使用Node.js制作图片上传服务的详细教程的详细内容,更多关于Node.js图片上传服务的资料请关注脚本之家其它相关文章!

    来源:https://www.jb51.net/javascript/339527k2i.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表