Node.js 博客实例(三)增加文件上传功能
来源:互联网 发布:知商金融预警 编辑:程序博客网 时间:2024/06/05 05:47
原教程https://github.com/nswbmw/N-blog/wiki/_pages的第三章
上传文件目前有三种方法:
使用 Express 自带的文件上传功能,不涉及数据库
使用 Formidable 外部模块,不涉及数据库
上传到 MongoDB ,涉及数据库
这里使用第一种,用户将文件上,存储于:blog/public/images/目录下。
blog/views/header.ejs 在<span><a title="发表" href="/post">post</a</span>前添加一行:
<span><a title="上传" href="/upload">upload</a</span>index.js添加代码:
fs=require('fs'),以及:
<span style="white-space:pre"></span>app.get('/upload',checkLogin);app.get('/upload',function(req,res){res.render('upload',{title:'文件上传',user:req.session.user,success:req.flash('success').toString(),error:req.flash('error').toString()});});app.post('/upload',checkLogin);app.post('/upload',function(req,res){for(var i in req.files){if(req.files[i].size==0){//使用同步方式删除一个文件fs.unlinkSync(req.files[i].path);console.log("successfully removed an empty file");}else{var target_path='./blog/public/images/'+req.files[i].name;//使用同步方式重命名一个文件fs.renameSync(req.files[i].path,target_path);console.log('successfully rename a file');}}req.flash('success','文件上传成功');res.redirect('/upload');});blog/views/下新建upload.ejs:
<%- include header %><form method='post' action='/upload' enctype='multipart/form-data' > <input type="file" name="file1" multiple="multiple" /><br> <input type="file" name="file2" multiple="multiple" /><br> <input type="file" name="file3" multiple="multiple" /><br> <input type="file" name="file4" multiple="multiple" /><br> <input type="file" name="file5" multiple="multiple" /><br> <input type="submit" /></form><%- include footer %>blog/app.js中app.use(express.bodyParser());改为:
//保留上传文件的后缀名,并把上传目录设置为 /public/images app.use(express.bodyParser({ keepExtensions: true, uploadDir: './blog/public/images' }));此时我们上传一张图片:123.png
提交:
发表博客,在博客里引用照片:
发表:
2 0
- Node.js 博客实例(三)增加文件上传功能
- Node.js 博客实例(八)增加存档页面
- Node.js 博客实例(十三)增加404页面
- Node.js 博客实例(十四)增加头像
- Node.js 博客实例(五)编辑与删除功能
- Node.js 博客实例(六)留言功能
- Node.js 博客实例(七)分页功能
- Node.js 博客实例(十一)文章检索功能
- Node.js 博客实例(十二)友情链接功能
- Node.js 博客实例(十六)日志功能
- Node.js + Express 实现上传文件功能(felixge/node-formidable)
- Node.js 博客实例(十七)小结
- Node.js 博客实例(十五)转载和转载统计功能
- node.js 文件上传
- Node.js入门教程——如何实现文件上传功能
- Node.js 博客实例(一)简单博客
- Node.Js Buffer类(缓冲区)-(三)文件读取实例
- node.js使用(三):文件操作
- 大写字符转换成 _小写
- C++构造函数与析构函数知多少
- 从零开始
- poj 1006 Biorhythms (中国剩余定理学习)
- 黑马程序员—感谢黑马给予30岁的我,换行业的勇气和平台!!!
- Node.js 博客实例(三)增加文件上传功能
- POJ 1873 & 1228 凸包和稳定凸包
- makefile中的自动化变量$@,$%,$
- Common Sentences for Scientific Writing (1)
- Android 亮度调节 apk
- 程序员面试HR你该看重什么?!
- java监控目录文件
- java java.lang.Long详解之二 缓存
- IFIX组态软件WINCC INTOUCH数据库 日志SQL记录,时班日报神器