プロジェクト

全般

プロフィール

Bug(バグ) #2864

OpenPNE 2 からコンバートされたか、管理画面からアップロードされた画像が常に JPEG として表示されてしまう箇所がある

Kousuke Ebihara約12年前に追加. 約4年前に更新.

ステータス:
New(新規)
優先度:
Normal(通常)
担当者:
-
対象バージョン:
開始日:
2012-03-08
期日:
進捗率:

0%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)

説明

Overview (現象)

OpenPNE 2 からコンバートされたものか、管理画面からアップロードされた画像が常に JPEG として表示されてしまう箇所がある。

Causes (原因)

image_tag_sf_image() の第一引数にファイル名を与えた場合、元ソースがファイルのフォーマット部分に応じた画像ファイルであるとみなし、変換処理をおこなう。ファイル名は _[拡張子] で終わる形式 (OpenPNE 3 の随所で画像アップロードをした場合に作成される形式) を想定している。

しかし、 OpenPNE 2 からコンバートされた画像や、管理画面からアップロードされた画像のファイル名は .[拡張子] で終了しているため、この形式の推測に失敗し、常に JPEG 画像として表示をおこなってしまう。

Way to fix (修正内容)

以下の方針が考えられる。

1. image_tag_sf_image() の現状のアプローチを維持する案
  • 極力ファイル名からの推測をおこなわないよう、 image_tag_sf_image() の第一引数に File クラスのインスタンスを渡すように変更する
  • ただ、漏れの可能性がありうることと、コア以外のコール部分については変更をおこなえないので、 .[拡張子] でファイル名が与えられた場合でも期待通りの変換がおこなえるように修正する
    2. image_tag_sf_image() のアプローチを変更する案
  • ファイル名が与えられた場合でも、ファイル名からのフォーマットの推測をおこなわないように修正する

関連するチケット

関連している OpenPNE 3 - Bug(バグ) #2632: 管理画面から画像をアップロードしたときに透過画像のときに透過されなくなる Won't fix(対応せず) 2011-11-29

履歴

#1 Yuya Watanabeほぼ12年前に更新

メモ

修正内容に記述されている 1 の方法の場合に変更する必要がある部分でFile インスタンスを渡すようにする場合に変更が必要そうな部分.

op_image_tag_sf_image (image_tag_sf_image() を内部で呼び出している)
apps/pc_frontend/templates/_partsMemberImageBox.php

  8 <?php echo op_image_tag_sf_image($options->object->getImageFileName(), $imgParam) ?>

この$options->object は下記部分で呼び出されており,それぞれ 別のオブジェクトが $options->object に入っている.
 apps/pc_frontend/modules/connection/templates/showSuccess.php
 apps/pc_frontend/modules/community/templates/homeSuccess.php
 apps/pc_frontend/modules/default/templates/_memberImageBox.php

また,conenction モジュールの $options->object については不明だが,他の2つでは Member オブジェクトと Community オブジェクトが入っており, Member オブジェクトの場合は getImageFileName() で File オブジェクトが返ってくるのに対して Community オブジェクトの getImageFileName() は文字列が返ってくるという違いがある.

#2 kaoru n約4年前に更新

  • 対象バージョンOpenPNE 3.10.x にセット

他の形式にエクスポート: Atom PDF