Maison > Article > interface Web > Exemples pour expliquer la fonction de téléchargement de fichiers thinkjs
Cet article vous présente principalement la fonction de téléchargement de fichiers de thinkjs. ThinkJS est un framework Node.js pour le développement futur. Il intègre un grand nombre de bonnes pratiques de projet pour rendre le développement au niveau de l'entreprise aussi simple et efficace. Ensuite, je partagerai avec vous la fonction de téléchargement de fichiers thinkjs via cet article. Les amis qui en ont besoin peuvent s'y référer. J'espère que cela pourra aider tout le monde.
Caractéristiques
Basé sur Koa 2.x, compatible avec le middleware
Le noyau est compact et prend en charge les plug-ins tels que Extend et Adapter
Excellentes performances et couverture élevée des tests unitaires
Compilation automatique intégrée et mécanisme de mise à jour automatique pour faciliter un développement rapide
Utilisez un async/await plus élégant pour gérer les problèmes asynchrones, ne prend plus en charge */yield
TypeScript est pris en charge à partir de 3.2
Architecture
thinkjs est un framework mvc basé sur nodejs produit par 360 Company. Cet article utilise thinkjs pour écrire le backend. comme suit :
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('上传失败,请重试!'); } }); });
Explication :async : false, cache : false, contentType : false, processData : false, doit être écrit.
De plus, les valeurs correspondant à chaque élément de formulaire dans l'objet formdata doivent être visualisées à l'aide de sa propre méthode get.
par exemple : data.get('file') //Le paramètre de get est le nom de l'élément du formulaire.
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); }
Recommandations associées :
jQuery implémente la fonction de prévisualisation avant de télécharger des fichiers image
Analyse de téléchargement de fichiers PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!