サポート » 使い方全般 » wp_get_image_editorで保存すると拡張子が小文字になる

  • 解決済 gogoweb

    (@gogoweb)


    wp_get_image_editorを使い、Wordpressのメディアアップローダーとは違う
    アップロード処理で送られた画像ファイルのサムネイルを作成しています。

    
    		//サムネイル作成
    		$image = wp_get_image_editor($path.$name);
    			if ( ! is_wp_error( $image ) ) {
    		    $image->resize( 100, 100, true );
    		    $image->save($thumbpath.$name);
    		}
    

    サムネイルは別のディレクトリに保存され、画像が削除された場合は同名のファイルも削除していたのですが
    上手く削除できない画像ファイルがありました。調べるとどうもaaa.JPGという画像をアップロードした場合
    wp_get_image_editorでリサイズ後の拡張子が小文字になりaaa.jpgとなっているようです。
    AaA.jpgの場合はAaA.jpgのまま。拡張子のみ小文字に変換されるようです。
    このままでは不都合なのでアップロードする際に、拡張子を小文字に変換しておくか、wp_get_image_editorの
    保存時に拡張子をそのまま保存したいのですが、wp_get_image_editorの保存形式のファイル名そのままに
    することは可能でしょうか?

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 拡張子を小文字にするコードが WordPress 本体に書き込まれています。
    これをスキップさせるには WordPress コアのコードを直に変更する必要があるのでお勧めしません。
    代わりに「画像が削除された場合は同名のファイルも削除」する処理の方で、拡張子の大文字/小文字を無視するようにしてはいかがでしょう。

    ご参考までに拡張子を小文字にする該当箇所を示します。

    wp-includes/class-image_editor.php の
    protected function get_output_format() の中に2ヵ所:

    $file_ext = strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
    
    $file_ext = strtolower( pathinfo( $this->file, PATHINFO_EXTENSION ) );
    

    public function generate_filename() の中に1ヵ所:

    $new_ext = strtolower( $extension ? $extension : $ext );
    

    情報ありがとうございます。
    順番として多少変ですが、最初に$_FILESのテンポラリーからサムネイルを作成し、そのサムネイルの名前で
    メインのアップロード先にコピーすることにしました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「wp_get_image_editorで保存すると拡張子が小文字になる」には新たに返信することはできません。