用 formidable 上传文件

本文详细介绍使用formidable模块在Web端实现文件上传的过程。包括前端表单设置、Node.js服务端配置及文件处理,通过具体代码示例,展示如何将文件从客户端提交到服务器并进行重命名和存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

文件上传至服务器的方式有多种,下面要介绍的 formidable 是其中之一

Web 端
  • 在前台Web端提交文件上传请求的方式可以用表单的方式实现
  • 上传文件至服务器 表单必须带上enctype属性"
  • 上传方式 POST
	<h5>formidable 文件上传 /reg</h5>
    <form action="/reg" method="POST" enctype="multipart/form-data">
        <input type="file" name="pho"><br>
        <input type="submit" value="文件上传">
    </form>
Node 服务端
  • $ npm install formidable npm 安装 formidable 模块 (安装后的文件在node_modules文件夹中)
  • require(“formidable”)  引入模块
  • 使用 express 搭建服务器(express还不会基本使用的话可以来侃侃 express快速使用
	const formidable = require("formidable");
	const fs = require("fs");
	const path = require("path")
	const express = require("express");
	const app = express();
	
	app.use("/", express.static("./directorys"));
	app.post("/reg", (req, res) => {
	    let form = new formidable.IncomingForm();
	    form.uploadDir = "./directorys/pho";
	    // 执行回调函数,请求则全部就收完毕
	    form.parse(req, (err, fields, files) => {
	        // console.log(fields);    // 所有的文本域、单选框都在 fields 对象中
	        console.log(files);     // 所有的文件域都在 files 中
	        let time = new Date().getTime();
	        let numRan = parseInt(Math.random() * 89999 + 10000);
	        let extname = path.extname(files.pho.name);
	        // 原始文件名
	        let oldName = __dirname + "/" +  files.pho.path;
	        // 新文件名
	        let newName = __dirname + "/directorys/pho/" + time + numRan + extname;
	        console.log(oldName,newName);
	        // 改名(剪切)
	        fs.rename(oldName,newName,err =>  res.end("改名完成!"));
	    });
	});
	
	app.listen(3000);

初始文件夹
在这里插入图片描述
终端
在这里插入图片描述
上传后文件夹
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值