nodeJs实现文件上传

该博客分享了如何使用Node.js实现文件上传功能。通过HTML的form标签,设置enctype为multipart/form-data来实现多部件表单上传。在服务器端,利用Buffer对象处理上传的文件内容。
摘要由CSDN通过智能技术生成

本文介绍的是通过html的form标签实现文件上传功能,是一个比较简易的文件上传实例,分享一下学习成果。

客户端部分

        要上传文件必须将表单enctype设置为multipart/form-data,这个参数表示表单将会以多部件表单的形式上传

        enctype的默认值是enctype=”application/x-www-form-urlencoded”。这个值的意思指将会对表单项的内容进行url编码,所谓url编码就将请求参数转换为二进制编码。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<form action="http://localhost:8080/upload" method="POST" enctype="multipart/form-data">
		用户名:<input type="text" name="user"><br>
		密码:<input type="password" name="pass"><br>
		<input type="file" name="f1"><br>
		<input type="submit" value="提交"> 
	</form>
</body>
<
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它可以使JavaScript在服务器端运行。要实现文件上传和下载,可以使用Node.js的一些模块和框架来简化开发过程。 对于文件上传,可以使用Multer作为中间件进行数据处理。Multer是一个流行的Node.js中间件,用于处理表单数据,特别是文件上传。以下是一个简单的示例代码: ```javascript const express = require('express'); const multer = require('multer'); const app = express(); const upload = multer({ dest: 'uploads/' }); app.post('/upload', upload.single('file'), (req, res) => { // 处理上传的文件 console.log(req.file); res.send('文件上传成功!'); }); app.listen(8080, () => { console.log('服务器已启动,监听端口8080'); }); ``` 上述代码创建了一个基本的Express应用程序,并使用Multer中间件来处理文件上传。`upload.single('file')`表示只接受名为`file`的单个文件。在回调函数中可以进行文件处理的操作。 对于文件下载,可以使用Node.js的内置模块`fs`和`http`来实现。以下是一个简单的示例代码: ```javascript const http = require('http'); const fs = require('fs'); http.createServer((req, res) => { if (req.method === 'GET' && req.url === '/download') { const file = fs.createReadStream('path/to/file.txt'); res.setHeader('Content-disposition', 'attachment; filename=file.txt'); file.pipe(res); } }).listen(8080, () => { console.log('服务器已启动,监听端口8080'); }); ``` 上述代码创建了一个简单的HTTP服务器,当GET请求路径为`/download`时,会将文件作为附件下载。可以通过设置`Content-disposition`头来指定下载文件的名称。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值