文档章节

multer上传文件并在前台显示

boogoogle
 boogoogle
发布于 2015/12/18 16:12
字数 413
阅读 366
收藏 0

在此用的是ejs的模板,在index.ejs中实现页面的显示

index.ejs

<%- include header  %>
<p>
	标题:<%= post.title %>
	<p>图片:<%= post.src %></p>
	<img src= <%= post.src %> alt="图呢??快给我!!">
	<!-- 这里的路径根目录都是指的public文件夹 -->
</p>
<%- include footer  %>

routes/index.js文件

var multer = require('multer');
....//这里只贴跟multer有关的代码,关于multer的用法,可以参考本博客中的另一篇
var storage = multer.diskStorage({
	destination:function(req,file,cb){//设置存储目标路径
		cb(null,path.join(path.resolve('./'),"/public/images"))
	},//cb指的是callback
	filename:function(req,file,cb){
		cb(null,file.fieldname+"-"+ Date.now())
	}//为啥加了这个filename之后会出现两个文件呢?
});
var upload = multer({storage:storage});
....
//post请求可以这样写
app.post('/upload',upload.single("file"),function(req,res,next) {
		var filename = req.file.filename
		console.log(filename+"文件名");
		res.redirect('/upload');/*如果在此处不做操作的话,nodejs会重复执行post到的upload请求
							导致在目标文件夹下生成多个文件(一般是两个,相当于/upload页刷新了一遍)*/
	});

如果要实现同步存储到数据库中,此处用mongoose实现的,mongoose的model,entity什么的就不仔细说了

app.post("/post",upload.single("file"),function(req,res){
		var filename = (req.file.filename);
		var issue = {
			username:req.session.user,
			title:req.body.title,
			post:req.body.post,
			time:new Date(),
			src:path.join("/images",filename)
			    //注意,此处的路径一定要弄清楚,它和上面storage中的路径不是一样的
		};


© 著作权归作者所有

上一篇: nginx笔记
boogoogle
粉丝 11
博文 105
码字总数 26870
作品 0
昌平
前端工程师
私信 提问
body-parser和multer

新版的nodejs中的body-parser和multer中间件进行了改写,而很多教程都是旧的同时这几天看到一个篇文章,大概意思是说,关于node的一本教程,刚上市就过时了.是的,这就是js,各种新技术,各种新的插...

boogoogle
2015/12/16
714
0
express+multer模板上传文件

环境初始化 非常简单,一行命令。 每个示例下面,都有下面两个文件 基础例子:单图上传 完整示例代码请参考这里。 app.js。 form.html。 运行服务。 访问 http://127.0.0.1:3000/form ,选择...

bug_killer
2017/12/21
0
0
node建立博客系统遇到的问题,1,乱码。2,multer的使用错误。3使用session问题

1,乱码 文件存储为utf-8格式后还是报错。 原来这个设置只对新建文件编码有效,旧文件不处理的,我还以为旧文件也给转换了。 2,上传文件的multer模块使用错误。 这里是multer的版本错误。可...

761218914
2016/03/13
24
0
node Express 框架

node Express 框架 哈。github的地址已经更换,求start https://github.com/mySoul8012 继续~ Express框架 简单介绍一下 Express事实上Node内置的http模块上构建的一层抽象。理论上所有Expre...

小小____
2018/07/29
0
0
Html5 ajax上传多个图片 +压缩 + nodjs保存

nodejs端 可以安装multer插件, 前端 upload.html ajax 利用xhr.send(FormData)来实现 利用拼接原始包的方式实现 注: 1.问:图片压缩在iphone和一些android手机上并没有多大效果,不知道问题...

snecker
2015/04/03
402
0

没有更多内容

加载失败,请刷新页面

加载更多

redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0
Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
昨天
4
0
hash slot(虚拟桶)

在分布式集群中,如何保证相同请求落到相同的机器上,并且后面的集群机器可以尽可能的均分请求,并且当扩容或down机的情况下能对原有集群影响最小。 round robin算法:是把数据mod后直接映射...

李朝强
昨天
4
0
Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
昨天
24
0
java数据类型

基本类型: 整型:Byte,short,int,long 浮点型:float,double 字符型:char 布尔型:boolean 引用类型: 类类型: 接口类型: 数组类型: Byte 1字节 八位 -128 -------- 127 short 2字节...

audience_1
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部