当前位置: 首页 > news >正文

石家庄的网站建设公司哪家好/广告优化师是做什么的

石家庄的网站建设公司哪家好,广告优化师是做什么的,昆明seo优化,wordpress360收录插件2019独角兽企业重金招聘Python工程师标准>>> 基于express的bodyParser() 解析请求体实现文件上传功能 一个完整的博客怎么能缺少图片呢?现在,我们来给博客添加文件上传功能,这样我们就可以使用 markdown 来链接图片了。 上传文件目…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

基于express的bodyParser() 解析请求体实现文件上传功能

一个完整的博客怎么能缺少图片呢?现在,我们来给博客添加文件上传功能,这样我们就可以使用 markdown 来链接图片了。

上传文件目前有三种方法:

  • 使用 Express 自带的文件上传功能,不涉及数据库

  • 使用 Formidable 外部模块,不涉及数据库

  • 上传到 MongoDB ,涉及数据库

第一个方法最简单,所以我们就用第一个来实现我们想要的功能吧。Express 通过 bodyParser() 解析请求体,我们可以使用 bodyParser() 来实现上传文件的功能,其实 bodyParser() 内部就是使用了 formidable ,只不过多了一层封装而已。

打开 header.ejs ,在 <span><a title="发表" href="/post">post</a></span> 前添加一行代码:

<span><a title="上传" href="/upload">upload</a></span>

然后打开 index.js ,在 app.get('/logout') 函数后添加如下代码:

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.get('/upload', checkLogin); 限制只有登陆的用户才能上传文件。

接下来,我们在 views 文件夹下新建 upload.ejs ,添加如下代码:

<%- include header %>
<form method='post' action='/upload' enctype='multipart/form-data' ><input type="file" name='file1'/><br><input type="file" name='file2'/><br><input type="file" name='file3'/><br><input type="file" name='file4'/><br><input type="file" name='file5'/><br><input type="submit" />
</form>
<%- include footer %>

现在我们就可以访问文件上传页面了。这里我们限制一次最多可以上传 5 个文件。清空数据库,重新注册登录后,上传文件页面如下图:

我们现在只是有了一个可以上传文件的表单而已,并不能上传文件,接下来我们添加对上传文件的支持。

打开 app.js ,将 app.use(express.bodyParser()); 修改为:

app.use(express.bodyParser({ keepExtensions: true, uploadDir: './public/images' }));

以上代码的意思是:保留上传文件的后缀名,并把上传目录设置为 /public/images (我们主要用来上传图片)。

打开 index.js ,在 crypto = require('crypto') 后添加一行代码:

fs = require('fs'),

在 app.get('/upload') 后添加如下代码:

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 = './public/images/' + req.files[i].name;// 使用同步方式重命名一个文件fs.renameSync(req.files[i].path, target_path);console.log('Successfully renamed a file!');}}req.flash('success', '文件上传成功!');res.redirect('/upload');
});

需要注意的是,即使你只上传了一个文件,其实是上传了那一个文件和四个空文件,所以我们在上传完毕后,要检测这五个文件是否有空文件,若有,则删除空文件并且把非空文件重命名为原来的名字;若没有,只把非空文件重命名为原来的名字。

转载于:https://my.oschina.net/u/1582119/blog/217767

http://www.lbrq.cn/news/795601.html

相关文章:

  • 用易语言做网站抢购软件/品牌推广思路
  • 网站章子怎么做/百度seo是什么意思
  • 大连金普新区城乡建设局网站/百度在线扫一扫
  • 网站开发历史/华为手机软文范文300
  • 生态旅游网站的建设/印度疫情最新消息
  • 网站建设价格女/电话营销
  • 昆山网站建设公司苏州爬虫科技/苏州网络公司
  • wordpress 首页视频/kj6699的seo综合查询
  • iis7 wordpress 伪静态/东莞seo广告宣传
  • 购物网站两化融合建设项目报告/国外免费建站网站搭建
  • 做网站用宋体有版权问题吗/交友平台
  • 天津学网站建设/宁德市房价
  • 网站建设应当注意/公关公司排行榜
  • 局域网网站开发/seo运营专员
  • 重庆孝爱之家网站建设/江苏seo网络
  • 网站怎么吸引用户/主流网站关键词排名
  • dw下载中文版破解/百度搜索排名优化哪家好
  • 一般做自己的网站需要什么/地推推广方案
  • 蛋糕网站设计/东莞seo外包公司
  • 做网站需要学什么/网站seo快速优化
  • 购物网站产品做促销能赚钱吗/如何注册百度账号
  • 网站做https/培训心得体会范文
  • 免费做图片链接网站/引擎搜索是什么意思
  • 中文域名抢注的骗局/台州seo快速排名
  • 应用商城软件下载 app/seo快速排名利器
  • 珠海做网站公司/网站排名怎么优化
  • 全国建设部网站证书查询/网站项目开发流程
  • 佛山网站建设报价/什么是搜索关键词
  • 做的比较好的卡车网站/云优化seo
  • wordpress 输出缩略图/seo服务指什么意思
  • 编译旧版本的electron内核
  • 蛇形卷积介绍
  • 用Unity结合VCC更改人物模型出现的BUG
  • Linux 高级 I/O 系统调用详解
  • 【龙泽科技】汽车故障诊断仿真教学软件【风光580】
  • 安装 docker compose v2版 笔记250731