Nodejs 上传下载功能的实现(同步)
上传和下载可分为两种,一种是form表单的形式(同步),另一种是Ajax的形式(异步)。
示例一(form表单):
html代码如下:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="uploadfile.do" method="post" enctype="multipart/form-data">
<!--上传上来的是文本格式,用enctype转换成数据格式-->
<input type="file" name="myfile"/><!--file为专门使用上传的表单项-->
<button>上传</button>
</form>
</body>
</html>
代码路径截图如下:

app.js文件的代码如下:
"use strict";
const myExpress=require("express"); //调用模块
const app=myExpress();//创建服务器
const myfs=require("fs");//文件的输入输出
app.configure(function(){
app.use(myExpress.logger("dev"));
app.use(myExpress.bodyParser({uploadDir:"./public/temp"}));
app.use(myExpress.methodOverride());
app.use(myExpress.static(__dirname+"/public"));
app.use(myExpress.favicon(__dirname+"/public/image/logo-2.png"));
app.use(myExpress.errorHandler());
}); app.set("port","8080");
app.listen(app.get("port"),function(){
console.log("服务启动jan09");
});
//上传上来的文件一般都存在C盘的临时文件中,若要存储在服务器重需要设置一个临时存储地,还需要在
//服务器配置中的bodyParserz中配置bodyParser({uploadDir:".public/temp"{)
app.post("/uploadfile.do",function(req,res){
console.log(req.files);//文件上传请求信息
let username="zzz";//这里的name需要用户登录,存在session中,然后从session中取出来
let tempPath=req.files.myfile.path;//找到临时路径
let filename=req.files.myfile.originalFilename;
let targetPath="./public/upload/"+username+"/"+filename;//将文件放入上传上来的目标路径
if(myfs.existsSync("./public/upload/"+username)==false){//判断upload路径下是否存在该用户的文件夹
myfs.mkdirSync("./public/upload/"+username);//没有的话,就创建一个文件夹
}
myfs.rename(tempPath,targetPath,function(err,data){
console.log(err);
console.log(data);
if(err==null){
res.send("upload succeed!");
}else{
throw err;//抛出错误
}
})
});
Nodejs 上传下载功能的实现(同步)的更多相关文章
- JavaWeb实现文件上传下载功能实例解析
		
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
 - 【转】Android 服务器之SFTP服务器上传下载功能
		
原文网址:http://blog.csdn.net/tanghua0809/article/details/47056327 本文主要是讲解Android服务器之SFTP服务器的上传下载功能,也是对之 ...
 - 【转】Android 服务器之SFTP服务器上传下载功能 -- 不错
		
原文网址:http://blog.csdn.net/tanghua0809/article/details/47056327 本文主要是讲解Android服务器之SFTP服务器的上传下载功能,也是对之 ...
 - JavaWeb实现文件上传下载功能实例解析 (好用)
		
转: JavaWeb实现文件上传下载功能实例解析 转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web ...
 - php实现文件上传下载功能小结
		
文件的上传与下载是项目中必不可少的模块,也是php最基础的模块之一,大多数php框架中都封装了关于上传和下载的功能,不过对于原生的上传下载还是需要了解一下的.基本思路是通过form表单post方式实现 ...
 - WEB文件上传下载功能
		
WEB文件上传下载在日常工作中经常用到的功能 这里用到JS库 http://files.cnblogs.com/meilibao/ajaxupload.3.5.js 上传代码段(HTML) <% ...
 - Struts2实现文件上传下载功能(批量上传)
		
今天来发布一个使用Struts2上传下载的项目, struts2为文件上传下载提供了好的实现机制, 首先,可以先看一下我的项目截图 关于需要使用的jar包,需要用到commons-fileupload ...
 - 文件一键上传、汉字转拼音、excel文件上传下载功能模块的实现
		
----------------------------------------------------------------------------------------------[版权申明: ...
 - C# 文件上传下载功能实现 文件管理引擎开发
		
Prepare 本文将使用一个NuGet公开的组件技术来实现一个服务器端的文件管理引擎,提供了一些简单的API,来方便的实现文件引擎来对您自己的软件系统的文件进行管理. 在Visual Studio ...
 
随机推荐
- Ext checkbox
			
Ext.require([ 'Ext.grid.*', 'Ext.data.*', 'Ext.util.*', 'Ext.grid.PagingScroller', ...
 - iOS应用架构谈 开篇 (转)
			
iOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方案 iOS应用架构谈 动态部署方案 iOS应用架构谈 本地持久化方案 缘由 之前安居客iOS ap ...
 - UIViewController的View显示在导航栏下面如何解决?
			
ios7之前的版本中UIViewController中的view在显示后会自动调整为去掉导航栏的高度的,控件会自动在导航栏以下摆放. 在iOS7中UIViewController的wantsFullS ...
 - 使用POI进行Excel操作的总结一——创建Workbook,Sheet,Row以及Cell
			
前段时间,看在其他的网站上给出Excel文档的导入与导出操作,感觉很酷的样子,所以就学习了一下如何使用POI进行Excel的操作,现在对之前的学习过程进行一个总结. 一.现在普遍使用的Excel文档有 ...
 - POJ 1155 树形背包(DP) TELE
			
题目链接: POJ 1155 TELE 分析: 用dp[i][j]表示在结点i下最j个用户公司的收益, 做为背包处理. dp[cnt][i+j] = max( dp[cnt][i+j ...
 - equals和hashcode
			
java当中所有的类都继承于Object这个基类,在object中的基类定义了一个equals方法,public boolean equals(Object obj) { return (th ...
 - mysql启动不了:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket
			
ps aux |grep mysql kill所有列出的进程,然后重启 service mysql start 原因有可能是mysqld没启动:service mysqld start. 持续出现此问 ...
 - 初涉JavaScript模式 (13) : 代码复用 【上】
			
引子 博客断了一段时间,不是不写,一是没时间,二是觉得自己沉淀不够,经过一段时间的学习和实战,今天来总结下一个老生常谈的东西: 代码复用. 为何复用 JS门槛低,故很多人以为写几个特效就会JS,其实真 ...
 - PL/SQL设置关键字大写
			
Tools->Preferences->User Interface->Keyword case = Uppercase,就设置为大写了.
 - js 获取页面高度和宽度(兼容 ie firefox chrome),获取鼠标点击位置
			
<script> //得到页面高度 var yScroll = (document.documentElement.scrollHeight >document.documentEl ...