サポート » 使い方全般 » 日本語ファイル名のアップロードでエラー

  • Google Cloud Pratform (GCP) にてWP4.4.2を動作させ、Cloud Storage (GCS)上にファイルをアップロードしております。
    表題の通り、日本語のファイル名をアップロードすると下記エラーとなります。
    mime-types設定済みです。

    “=?UTF-8?B?5aeL5pyr5pu4Lnhsc3g=?=” のアップロードに失敗しました。
    このファイルタイプはセキュリティの観点から許可されていません。

    下記フォーラム同様のトピを参考に
    WP Multibyte Patch 2.5 (WPMB)を有効にして試しております。
    アルファベットのみのファイル名でアップロードの場合は問題ありません。
    クライアントが管理がしづらいので何とか日本語ファイル名にも対応できないかと言うことで、
    フォーラムやgoogleとにらめっこし各方法を試しているのですが苦戦しております。

    [解決済み] [閉] 日本語名を含むファイルのアップロードがうまくいかない

    日本語ファイル名のままアップロード、ダウンロードできるようにしたいのですが不可能でしょうか?

    GCSへのアップロード言うところがネックだとは思いますが
    よろしくお願いいたします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • モデレーター Daisuke Takahashi

    (@extendwings)

    GAEかGCEかにもよりますよね。あと、GCSへのアップロードにどういったプラグイン、コードを使われているのか書かないと状況の再現のしようがないと思います。

    トピック投稿者 hamachu

    (@hamachu)

    >Daisuke Takahashi様

    ご指摘ありがとうございます。
    今回wordpressはGAEプロジェクトにてデプロイしております。
    GCSへのアップロードには Google App Engine for WordPress ver1.6 プラグインを使用し、設定画面でGCSフォルダ名を指定してアップロードを試みております。

    このファイルタイプはセキュリティの観点から許可されていません

    ファイルタイプが書かれていないので、アテズッポですが
    日本語の問題というより、ファイルタイプが弾かれているのではないですか?

    ユーザーに権限がないとか、

    current_user_can( 'unfiltered_upload' )

    訂正:権限は関係ないですね 英語ファイル名でうまくいくなら

    試しに、日本語資料.pdf というファイルを作成し、3つ程のワードプレス(シングル)でアップロードのテストを行ってみましたが、

    日本語のファイル名は、2サイトで、多分md5で処理されたファイル名に置換されるようです。
    1サイトは、URLエンコードで処理されていました。(詳しくは調べていませんが)

    いずれにしろ、日本語でも動作しています。

    テストしたテーマは、

    https://wordpress.org/themes/raindrops/

    というテーマです。

    よろしければ、このテーマを使用した場合の結果を教えていただけるとうれしいです。

    トピック投稿者 hamachu

    (@hamachu)

    >nobita様

    レスありがとうございます。
    アップロードしたファイルは「さんぷる.jpg」(58KB)、「日本語.pdf」(3.4MB)にて検証しております。

    早速raindropsテーマに切り換え試してみましたが下記同様のエラーでした。
    念のためGoogle App Engine for WordPressプラグイン以外を外した場合も試しましたが同様でした。

    “=?UTF-8?B?44GV44KT44G344KLMDMuanBn?=” のアップロードに失敗しました。
    このファイルタイプはセキュリティの観点から許可されていません。

    エラー文字列からmd5変換はされているようなのですが、前後にutf-8や”=”、”?”といった文字列がついていますね。

    GCSは作成してから権限など変更はしておりません。

    試しに、禁止されているファイルタイプ svg で試してみましたが

    arrow-d-r-black.svg
    このファイルタイプはセキュリティの観点から許可されていません。

    クエリ―文字列みたいなものは、ついていないですね。

    サーバーの問題かもしれませんね。

    だいぶ前に、クラウドサービスでデプロイしたWordPressを使った時に、

    特定のテーマがエラーになるという事がありました。サービスの提供側で特定のPHP関数を使っている場合は、使用できないようにする措置が取られていたようで、

    ワードプレス.org が提供しているまんまをそのまま使っていない場合もあると思うので、
    別な環境で試してみてはどうでしょうか?

    アップロードしたファイルのファイル名の確認や操作する場合は

    sanitize_file_name というフィルターが使えると思います

    トピック投稿者 hamachu

    (@hamachu)

    >nobita様

    お試しいただきありがとうございます。

    クエリ―文字列みたいなものは、日本語ファイル名をアップロードした際に表示されます。
    アルファベットファイル名だとアップは問題なくおこなえ、svgもmime-types設定すれば大丈夫です。

    だいぶ前に、クラウドサービスでデプロイしたWordPressを使った時に、
    特定のテーマがエラーになるという事がありました。サービスの提供側で特定のPHP関数を使っている場合は、使用できないようにする措置が取られていたようで、
    ワードプレス.org が提供しているまんまをそのまま使っていない場合もあると思うので、別な環境で試してみてはどうでしょうか?

    そんな措置があったのですね。
    今回は下記googleが提供しているWPのセットを日本語化して使用しており、ほぼデフォルトの状態で今回の日本語ファイル名がアップできない状態です。

    http://googlecloudplatform.github.io/appengine-php-wordpress-starter-project/

    アップロードしたファイルのファイル名の確認や操作する場合は
    sanitize_file_name というフィルターが使えると思います

    sanitize_file_nameですね。勉強になります。
    フィルター調べて、アップロード時のファイル名など調査してみたいと思います。

    日本語.svg でも同様でした。

    Google App Engine for WordPress ver1.6 というプラグインが何かやっているかもしれないので、外してみるとかも試してみてはどうでしょう

    モデレーター Seisuke Kuraishi

    (@tenpura)

    =?UTF-8?B?44GV44KT44G344KLMDMuanBn?= は「さんぷる03.jpg」が base64 エンコードされたもので、この処理は ファイルが WordPress 領域にアップロードされる前に行われているものと思われます。

    エラー出力のタイミング自体が sanitize_file_name() のロジックよりも前(WP Multibyte Patch の処理よりも前)なので、さらに上流の wp_handle_upload_prefilter フック辺りで変名処理すればアップロードできるようになるかもしれません。

    恐らく、GAE・GCS 自体もしくは、Google App Engine for WordPress の処理が原因かと思われますが、そちらの方面の情報は確認されましたか?

    トピック投稿者 hamachu

    (@hamachu)

    >nobita様

    日本語.svgでのテストもありがとうございます。
    Google App Engine for WordPressがGCSのバケットへ紐づけているので今のところ使用せざるをえません。。。

    >Seisuke Kuraishi 様
    情報ありがとうございます。
    勉強になります。
    wp_handle_upload_prefilter 、Google App Engine for WordPressのフォーラムなども確認し、変名処理チャレンジしてみます。

    https://wordpress.org/support/plugin/google-app-engine

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「日本語ファイル名のアップロードでエラー」には新たに返信することはできません。