最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

thinkjs 文件上传功能实例代码

来源:动视网 责编:小采 时间:2020-11-27 22:26:07
文档

thinkjs 文件上传功能实例代码

thinkjs 文件上传功能实例代码:介绍 ThinkJS 是一款面向未来开发的 Node.js 框架,整合了大量的项目最佳实践,让企业级开发变得如此简单、高效。从 3.0 开始,框架底层基于 Koa 2.x 实现,兼容 Koa 的所有功能。 特性 基于 Koa 2.x,兼容 middleware 内核小巧,支持 Exte
推荐度:
导读thinkjs 文件上传功能实例代码:介绍 ThinkJS 是一款面向未来开发的 Node.js 框架,整合了大量的项目最佳实践,让企业级开发变得如此简单、高效。从 3.0 开始,框架底层基于 Koa 2.x 实现,兼容 Koa 的所有功能。 特性 基于 Koa 2.x,兼容 middleware 内核小巧,支持 Exte


介绍

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

特性

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

    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 文件上传功能实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    文档

    thinkjs 文件上传功能实例代码

    thinkjs 文件上传功能实例代码:介绍 ThinkJS 是一款面向未来开发的 Node.js 框架,整合了大量的项目最佳实践,让企业级开发变得如此简单、高效。从 3.0 开始,框架底层基于 Koa 2.x 实现,兼容 Koa 的所有功能。 特性 基于 Koa 2.x,兼容 middleware 内核小巧,支持 Exte
    推荐度:
    标签: thinkjs
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top