thinkjs文件上传功能示例代码
介绍
ThinkJS是一个面向未来的Node.js框架,它集成了大量的项目最佳实践,让企业级开发变得如此简单高效。从3.0开始,框架底层基于Koa 2.x,兼容Koa的所有功能。
特点
基于Koa 2.x,中间件兼容内核小,支持Extend、Adapter等插件性能优秀,单元测试覆盖率高。内置的自动编译和自动更新机制便于快速开发和使用更优雅的async/await来处理异步问题,不再支持*/yield。从3.2开始支持TypeScript架构。
Thinkjs是360公司开发的基于nodejs的mvc框架。本文使用thinkjs编写后端,具体代码如下:
让form data=new form data($(“form”)[0]);$('#fileUpload ')。submit(function(e){ e . preventdefault();var data=new FormData($(this)[0]);$ .Ajax({ URL : '/them store/upload/theme ',type:' post ',data:data,async3360 false,//发送同步请求(默认值为TRUE) cache: false,//在不同的浏览器缓存中加载请求信息(默认值为TRUE)。//内容编码格式为processdata: false。/*要求是布尔类型的参数,默认值为真。默认情况下,发送的数据将被转换为对象(技术上不是字符串),以匹配默认内容类型“application/x-www-form-URL encoded”。如果要发送DOM树信息或其他不想转换的信息,请设置为false。*/success:function (res) { if(!Res.errno)警报('已成功上传!');Else alert('上传失败,请重试!');} });});解释:async: false,cache: false,contenttype: false,processdata: false,需要写。
此外,对应于formdata对象中每个表单项的值应该由其自己的get方法来查看。
例如:data . get(' file ')//其中get的参数是表单元素的名称。
async themeAction(){让theme file=this . file(' theme name ');让file path=them file . path;//为防止上传过程中因文件名重复而导致同名上传文件被覆盖,path为随机名称,让upload path=think . resource _ path '/static/theme '由MD5生成;think . mkdir(uploadpath);//创建此目录//提取由“/”分隔的路径的最后一部分。//让base name=path . basename(file path);让base name=them file . originalfilename;//由于系统不允许上传同名主题,文件名直接使用主题名。//将上传的文件(文件路径为filepath的文件)移动到第二个参数所在的路径,改为第二个参数的文件名。fs.renameSync(filepath,upload path/' basename);them file . path=upload path/' base name;//读取压缩文件信息存储数据库让zip=new JSZip();this.success(主题文件);}摘要
以上是边肖介绍的thinkjs文件上传功能的示例代码,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!
版权声明:thinkjs文件上传功能示例代码是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。