thinkjs 文件上传功能实例代码


Posted in Javascript onNovember 08, 2017

介绍

ThinkJS 是一款面向未来开发的 Node.js 框架,整合了大量的项目最佳实践,让企业级开发变得如此简单、高效。从 3.0 开始,框架底层基于 Koa 2.x 实现,兼容 Koa 的所有功能。

特性

  • 基于 Koa 2.x,兼容 middleware
  • 内核小巧,支持 Extend、Adapter 等插件方式
  • 性能优异,单元测试覆盖程度高
  • 内置自动编译、自动更新机制,方便快速开发
  • 使用更优雅的 async/await 处理异步问题,不再支持 */yield
  • 从 3.2 开始支持 TypeScript

架构

thinkjs 文件上传功能实例代码

thinkjs是360公司出的一个基于nodejs的mvc框架,本文采用thinkjs写后端,具体代码如下:

let formdata = new FormData($('form')[0]);
  $('#fileUpload').submit(function (e) {
    e.preventDefault();
    var data = new FormData($(this)[0]);
    $.ajax({
      url: '/themestore/upload/theme',
      type: 'POST',
      data: data,
      async: false, //发送同步请求(默认为TRUE)
      cache: false, //不同浏览器缓存中加载请求信息(默认为true)
      contentType: false, //内容编码格式
      processData: false,
/*要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。*/
      success:function (res) {
        if(!res.errno) alert('上传成功!');
        else alert('上传失败,请重试!');
      }
    });
  });

说明:async: false, cache: false, contentType: false, processData: false,需要写上去。

此外,formdata对象中表单各项对应的值,要使用其自身get方法查看。

eg:data.get(‘file') //其中get的参数是表单元素的name。

async themeAction(){
  let themefile = this.file('themename');
  let filepath = themefile.path;//为防止上传的时候因文件名重复而覆盖同名已上传文件,path是MD5方式产生的随机名称
  let uploadpath = think.RESOURCE_PATH + '/static/theme';
  think.mkdir(uploadpath);//创建该目录
  //提取出用 ‘/' 隔开的path的最后一部分。
  //let basename = path.basename(filepath);
  let basename = themefile.originalFilename;//因为本系统不允许上传同名主题,所以文件名就直接使用主题名
  //将上传的文件(路径为filepath的文件)移动到第二个参数所在的路径,并改为第二个参数的文件名。
  fs.renameSync(filepath, uploadpath + '/' + basename);
  themefile.path = uploadpath + '/' + basename;
  //读取压缩文件信息存数据库
  let zip = new JSZip();
  this.success(themefile);
 }

总结

以上所述是小编给大家介绍的thinkjs 文件上传功能实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
ScrollDown的基本操作示例
Jun 09 Javascript
IE下写xml文件的两种方式(fso/saveAs)
Aug 05 Javascript
javascript中数组中求最大值示例代码
Dec 18 Javascript
对JavaScript客户端应用编程的一些建议
Jun 24 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
Apr 08 Javascript
javascript关于继承解析
May 10 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
Jan 21 Javascript
Vue中this.$router.push参数获取方法
Feb 27 Javascript
Vue的轮播图组件实现方法
Mar 03 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
Oct 25 Javascript
layui数据表格跨行自动合并的例子
Sep 02 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
Aug 14 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
Nov 08 #jQuery
在React 组件中使用Echarts的示例代码
Nov 08 #Javascript
浅谈mint-ui loadmore组件注意的问题
Nov 08 #Javascript
es6在react中的应用代码解析
Nov 08 #Javascript
mac中利用NVM管理不同node版本的方法详解
Nov 08 #Javascript
浅谈vue-router2路由参数注意的问题
Nov 08 #Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
Nov 08 #jQuery
You might like
新版PHP极大的增强功能和性能
2006/10/09 PHP
几种显示数据的方法的比较
2006/10/09 PHP
php在线生成ico文件的代码
2007/10/09 PHP
一些php技巧与注意事项分析
2011/02/03 PHP
PHP设计模式之装饰者模式代码实例
2015/05/11 PHP
thinkPHP模板中函数的使用方法示例
2016/11/30 PHP
javascript 函数速查表
2010/02/07 Javascript
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
国内常用的js类库大全(CDN公共库)
2020/06/24 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
JVM是一个编译程序还是解释程序
2012/09/11 面试题
新学期家长寄语
2014/01/19 职场文书
天鹅的故事教学反思
2014/02/04 职场文书
教师岗位聘任书范文
2014/03/29 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
科技活动总结范文
2015/05/11 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
导游词之吉林吉塔
2019/11/11 职场文书