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 相关文章推荐
根据地区不同显示时间的javascript代码
Aug 13 Javascript
js常用代码段收集
Oct 28 Javascript
node.js中的Socket.IO使用实例
Nov 04 Javascript
JavaScript数组迭代器实例分析
Jun 09 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
May 23 Javascript
js 动态给元素添加、移除事件的实现方法
Jul 19 Javascript
js实现敏感词过滤算法及实现逻辑
Jul 24 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
Feb 12 Javascript
JS使用数组实现的队列功能示例
Mar 04 Javascript
vue实现员工信息录入功能
Jun 11 Javascript
Vue数组响应式操作及高阶函数使用代码详解
Aug 01 Javascript
如何使用 vue-cli 创建模板项目
Nov 19 Vue.js
基于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 获取mysql数据库信息代码
2009/03/12 PHP
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
JavaScript中字面量与函数的基本使用知识
2015/10/20 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
JS闭包的几种常见形式实例详解
2017/09/16 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
名片管理系统python版
2018/01/11 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
在django模板中实现超链接配置
2019/08/21 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
质检部岗位职责
2013/11/11 职场文书
企事业单位求职者的自我评价
2013/12/28 职场文书
高中物理教学反思
2014/02/08 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
先进个人推荐材料
2014/12/29 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
投诉信格式范文
2015/07/02 职场文书