Busboy 上传文件到指定目录,并重命名,node.js

2024-09-04 19:38

本文主要是介绍Busboy 上传文件到指定目录,并重命名,node.js,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,安装busboy ,在该项目下打开命令行(按住shift+右键)

npm install busboy

2,页面:必须含有(
enctype="multipart/form-data"

<form class="form form-signin" action="" method="post" id ="myForm" enctype="multipart/form-data"><h1 class="form-signin-heading">上传视频</h1><label for="cName"  class="sr-only"></label><input  id="cName" type="text" maxlength="40" placeholder="课程名称" name="lesson[name]" required autocomplete="false" autofocus /><label for="cNo"  class="sr-only"></label><input type="number" id="cNo" name="lesson[no]" placeholder="目录(第几集)" /><div class="video"><span>添加视频</span><input type="file" name="videoUpload"  id="cVideo"  accept="video/*" /><p class="vBackg"></p></div><input type="submit" value="上传课程视频" class="btn btn-primary btn-block submit" id="sub"/>
</form>


传参:

    var lName = $('#cName').val(),lNo = $('#cNo').val();$('#myForm').attr('action', "/videoUpload?lName="+lName+"&lNo="+lNo) ;


3,后台处理:

3.1,获取前台post过来的参数:

req.query.XXX

其中XXX 就是传过来的参数名,比如localhost:3000?lName=joh,就是lName,获得的就是joh

3.2 处理

router.post('/videoUpload',function(req, res) {//在这里做一个头部数据检查if(!/multipart\/form-data/i.test(req.headers['content-type'])){return res.end('wrong');}var lName,lNo;/*db = mongoose.connect(db_url),*/var  filePath = path.join(path.normalize(__dirname + '/..'), 'public', 'upload');var busboy = new Busboy({ headers: req.headers });
/*    db.connection.on('open', function() {console.log('lesson db connected');});*/busboy.on('file', function (fieldname, file, filename, encoding, mimetype) {console.log('File [' + fieldname + ']: aaa filename: ' + filename);console.log('lName: ' + req.query.lName + "lNo: " + req.query.lNo);lName = req.query.lName;lNo = req.query.lNo;createFlo(lName, filePath);var type = mimetype.toString();var savePath = filePath + '\\' + lName + '\\' + lNo + '.' + type.substr(type.indexOf('/') + 1, type.length);showErr(savePath);file.pipe(fs.createWriteStream(savePath));Lesson.save({lessonName: lName, lNo: lNo, creTime: Date.now()}, function (err) {showErr(err);});console.log('插入数据库成功');file.on('data', function (data) {console.log('File [' + fieldname + '] got ' + data.length + ' bytes');});file.on('end', function () {console.log('File [' + fieldname + '] Finished');});});busboy.on('field', function(fieldname, val, fieldnameTruncated, valTruncated) {console.log('Field [' + fieldname + ']: value: ' + inspect(val));});busboy.on('finish', function() {console.log('Done parsing form!');res.writeHead(200, { 'Connection': 'close' });res.end("That's all folks!");});return req.pipe(busboy);});
function createFlo(lName,filePath){var dirpath =filePath+'\\'+lName;console.log("dirpath "+dirpath);//不存在文件夹,创建if (!fs.existsSync(dirpath)) {fs.mkdirSync(dirpath, 0755);console.log( '文件夹创建成功~');}
}
function  showErr(err) {console.log("info / err: "+ err);
}


还包括上传数据库的代码,大家也可以参考

这篇关于Busboy 上传文件到指定目录,并重命名,node.js的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136840

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以