ホームページ  >  記事  >  ウェブフロントエンド  >  thinkjsのファイルアップロード機能を説明する例

thinkjsのファイルアップロード機能を説明する例

小云云
小云云オリジナル
2017-12-23 10:46:062735ブラウズ

この記事では、主に thinkjs ファイルのアップロード機能を紹介します。ThinkJS は、将来の開発のための Node.js フレームワークであり、エンタープライズ レベルの開発を非常にシンプルかつ効率的に行うためのプロジェクトのベスト プラクティスを多数統合しています。次に、この記事を通じて thinkjs ファイルのアップロード機能を紹介します。必要な方はぜひ参考にしてください。

機能

  • Koa 2ベース。迅速な開発を促進する更新メカニズム

  • よりエレガントなasync/awaitを使用して非同期問題を処理し、*/yieldをサポートしなくなりました

  • 3.2からTypeScriptをサポート

  • architecture

  • thinkjs は、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 メソッドを使用して表示する必要があります。
  • 例: data.get('file') //get のパラメータはフォーム要素の名前です。

    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);
     }
    関連する推奨事項:

    jQuery は画像ファイルをアップロードする前のプレビュー機能を実装します

    PHP ファイルのアップロード分析

    PHP Web ページでの一般的なファイル アップロード機能の実装例

    以上がthinkjsのファイルアップロード機能を説明する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。