上传和下载可分为两种,一种是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 上传下载功能的实现(同步)的更多相关文章

  1. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

  2. 【转】Android 服务器之SFTP服务器上传下载功能

    原文网址:http://blog.csdn.net/tanghua0809/article/details/47056327 本文主要是讲解Android服务器之SFTP服务器的上传下载功能,也是对之 ...

  3. 【转】Android 服务器之SFTP服务器上传下载功能 -- 不错

    原文网址:http://blog.csdn.net/tanghua0809/article/details/47056327 本文主要是讲解Android服务器之SFTP服务器的上传下载功能,也是对之 ...

  4. JavaWeb实现文件上传下载功能实例解析 (好用)

    转: JavaWeb实现文件上传下载功能实例解析 转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web ...

  5. php实现文件上传下载功能小结

    文件的上传与下载是项目中必不可少的模块,也是php最基础的模块之一,大多数php框架中都封装了关于上传和下载的功能,不过对于原生的上传下载还是需要了解一下的.基本思路是通过form表单post方式实现 ...

  6. WEB文件上传下载功能

    WEB文件上传下载在日常工作中经常用到的功能 这里用到JS库 http://files.cnblogs.com/meilibao/ajaxupload.3.5.js 上传代码段(HTML) <% ...

  7. Struts2实现文件上传下载功能(批量上传)

    今天来发布一个使用Struts2上传下载的项目, struts2为文件上传下载提供了好的实现机制, 首先,可以先看一下我的项目截图 关于需要使用的jar包,需要用到commons-fileupload ...

  8. 文件一键上传、汉字转拼音、excel文件上传下载功能模块的实现

    ----------------------------------------------------------------------------------------------[版权申明: ...

  9. C# 文件上传下载功能实现 文件管理引擎开发

    Prepare 本文将使用一个NuGet公开的组件技术来实现一个服务器端的文件管理引擎,提供了一些简单的API,来方便的实现文件引擎来对您自己的软件系统的文件进行管理. 在Visual Studio ...

随机推荐

  1. project facet java version 1.6 is not supported

    可能你用的jdk1.5的包,而开发是用的jdk1.6,不允许1.5进行安装 法1,选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Vers ...

  2. asp.net微信开发第五篇----用户分组管理

    上一篇已讲解到新建用户分组,移动用户到分组的功能,这一章主要讲解修改分组名称和删除分组 开发者可以使用接口,对公众平台的分组进行查询.创建.修改.删除等操作,也可以使用接口在需要时移动用户到某个分组. ...

  3. (转) ThinkPHP模板自定义标签使用方法

    这篇文章主要介绍了ThinkPHP模板自定义标签使用方法,需要的朋友可以参考下  转之--http://www.jb51.net/article/51584.htm   使用模板标签可以让网站前台开发 ...

  4. mssql的holdlock锁跟索引的关系

    表锁tablock是会给表所有数据附加共享锁,但是只是当前语句有效,语句执行完毕,锁释放,而不会持续到事务结束,而tablockX表锁是持续到事务结束的锁 holdlock锁,锁定的范围会根据wher ...

  5. ios 中的UI控件学习总结(1)

    UIKit框架提供了非常多功能强大又易用的UI控件 下面列举一些在开发中可能用得上的UI控件 UIButton 按钮 UILabel 文本标签 UITextField 文本输入框 UIImageVie ...

  6. Hive学习之六 《Hive进阶— —hive jdbc》 详解

    接Hive学习五 http://www.cnblogs.com/invban/p/5331159.html 一.配置环境变量 hive jdbc的开发,在开发环境中,配置Java环境变量 修改/etc ...

  7. Tinkphp定时发布文章的教程

    第一步:在文章表中加一个字段,用来保存定时发布的时间 假定我把这个字段设为 push_time 默认为 0 第二步:写一个方法来检查文章列表,把文章列表到时间的文章改为发布状态 //定时发布文章 pu ...

  8. 基于memcached中命令分析函数tokenize_command改造的split函数

    今天使用C重构php代码,需要手写一个split函数,于是就模仿memcached中获取用户命令的函数 static size_t tokenize_command(char *command, to ...

  9. nosql学习一

    1.NoSQL,泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难 ...

  10. 新建PCH文件以及常用宏定义

    $(SRCROOT)/项目名/pch文件名.pch //0-255的随机数 #define randint arc4random() % 256 //随机色 #define randColor [UI ...