We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 15497
    • 117 Posts
    ドキュメント編集画面のリッチエディタ(TinyMCE等)でファイルをアップロードする際に使う、リソースブラウザについて、
    以前投稿した↓ リソースブラウザのアップロード機能のいくつかの問題を修正するものを作りましたので、添付しておきます。
    http://modxcms.com/forums/index.php/topic,28535.msg184182.html#msg184182

    修正点は以下です。

    • ファイルの容量チェックの単位が間違っていたバグの修正。(設定値をKバイトで扱っていましたが、正しくはバイトですね)
    • PHPのバージョンにより、`basename`は、マルチバイト文字の処理にバグがあるようですので、他のコードに置き換えました。(ファイル名にマルチバイト文字が含まれていると悲惨なことになります。)
    • ファイル名に使える文字種`FileNameAllowedChars`(*1)以外の文字を含むファイル名をエラーにするようにしました。(マルチバイト文字を含むファイル名をアップすると、リソースブラウザの表示に支障がありますので)

    添付ファイルをダウンロードして展開すると、「en」と「ja」の2つのフォルダがありますが、
    「en」は、修正のみを行ったものです。
    「ja」は、さらにメッセージを日本語化(internal error等を除く)したものです。

    どちらか好きな方の「FileUpload.php」を使って、
    「manager/media/browser/mcpuk/connectors/php/Commands/FileUpload.php」
    を上書きすると使えます。

    (*1)「manager/media/browser/mcpuk/connectors/php/config.php」で設定されているようです。
    以前の投稿時は、とりあえず、ファイル名の文字種チェックを直接ハードコーディングしていましたが、
    調べてみると、この`FileNameAllowedChars`を使うメソッド「cleanFilename」があったので、それを活用しました。

    ■2009-03-24追記■
    さらに、以前投稿した↓MobileConverter等を使う際の問題を修正したものも添付しておきます。
    http://modxcms.com/forums/index.php/topic,31064.0.html
    こちらは、上記に加えて、以下の修正を行っています。

    • ファイルアップロード時に`OnFileManagerUpload`イベントを発行していないので、これを発行するように修正
    ファイル名「FileUpload-hikidas20090324event.zip」で添付しておきます。
      ★日本公式フォーラム2009年9月1日本格始動!★
      http://modxcms-jp.com/bb/

      ▼ウェブ屋のCMS→modxヒキダス流(備忘録)
      http://d.hatena.ne.jp/hikidas_ikeda/
      ▼制作済みHTMLページをmodxで更新するデモ
      http://www.hikidas.com/hikidas/modx_document/modx_demo_osc2009kansai.php
      • 15497
      • 117 Posts
      上の記事に追記しましたが、MobileConverter等を使う時に必要になる(*1)`OnFileManagerUpload`イベントを発行する修正を行ったものをアップしました。

      (*1)
      MobileConverterは、携帯用に画像のサイズ変換を自動でやってくれる機能があります。
      ファイルマネージャーからファイルをアップロードした場合は問題ありませんが、
      ドキュメント編集画面のリッチエディタ(TinyMCE等)から(リソースブラウザを開いて)ファイルをアップロードした場合、
      `OnFileManagerUpload`イベントが発行されないので、この自動変換は行われません。
      これに対応するように、`OnFileManagerUpload`イベントを発行するように修正しました。

      テストは、MODx0.9.6.3(本家)、および、MODx0963j-beta1(日本語版)で行っています。

      ちなみに、私が知る限り、MODxのバージョン0.9.6~0.9.6.3では、
      元のソース「manager/media/browser/mcpuk/connectors/php/Commands/FileUpload.php」は、全く変更されていませんので、少なくとも「FileUpload-hikidas20090323.zip」の方は、これらのバージョンの全てで利用可能だと思われます。
        ★日本公式フォーラム2009年9月1日本格始動!★
        http://modxcms-jp.com/bb/

        ▼ウェブ屋のCMS→modxヒキダス流(備忘録)
        http://d.hatena.ne.jp/hikidas_ikeda/
        ▼制作済みHTMLページをmodxで更新するデモ
        http://www.hikidas.com/hikidas/modx_document/modx_demo_osc2009kansai.php
      • http://modxcms.com/forums/index.php/topic,38916.0.html
        こちらに改造版を上げておきました。

        cleanFilenameメソッドの中身を見てみましたが、ファイル名として安全に使える文字をホワイトリスト形式で通すもののようですね。
        問題がありそうな文字として、たとえば * ? \ / : $ < > などは通さない。マルチバイトに関係なくメリットがありそうなので、
        本家にも提案してみたいと思います。