关于ejs模板路径引用 以及 上传文件,图片的问题

本文介绍了EJS模板引擎中静态资源的路径引用问题,重点是所有静态资源默认来源于public文件夹。在处理文件上传时,将上传路径设置为public的子目录,例如/avatar,然后在模板中使用相对路径./avatar即可引用。通过formidable模块进行文件上传,设置上传目录,获取文件名后缀,并利用fields和files对象处理表单数据和文件信息,最后通过res.redirect进行路由跳转。
摘要由CSDN通过智能技术生成

ejs的静态资源都是来自于文件夹public!!!

因为无论ejs怎么写路径,加载的时候都是以host:port/ avatar/ name.jpg . 而此路径默认加载的是public的avatar文件夹、

所以,提交文件到服务器的时候,直接指定文件夹为public中的子文件夹(/avatar),之后再ejs模板中直接用 ./ avatar 即可。

// 处理上传头像
exports.doSetAvatar = function(req, res, next){
	let form = new formidable.IncomingForm();
	// 设置上传文件夹
	form.uploadDir = './public/avatar'; //用于设置文件或图片上传的存放路径,为绝对物理路径 **直接放在public下**
	//以post方式提交的表单域数据都放在fields这个对象当中,以post方式上传的文件、图片等文件域数据都放在files
	form.parse(req, (err, fields, files) => {
		//返回path路径文件扩展名,如果path以 ‘.' 为结尾,将返回 ‘.',如果无扩展名 又 不以'.'结尾,将返回空值。
		let extname = path.extname(files.avatar.name);
		let oldPath = files.avatar.path;
		let newPath = './public/avatar' + '/' + req.session.oid + extname;
		console.log(newPath)

		//使用fs.rename()方法对其进行改名的操作,使其上传之后的文件名与之前的保持一致,并且
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值