Ticket #3176 (closed defect: fixed)

Opened 8 years ago

Last modified 7 years ago

画像DBオプションが有効かつ、一時画像をDB保存すると本投稿時に画像用DBに保存されない

Reported by: pnetan Assigned to: ogawa
Priority: minor Milestone: OpenPNE2.14.3
Component: 指定しない Version: 2.12.x & 2.14.x
Keywords: OpenPNE2.12.16 Cc:

Description (Last modified by imamura623)

■現象

画像の保存先を通常のデータとは別DBに設定している($GLOBALS['_OPENPNE_DSN_LIST']['image'] を設定している)環境下で、一時画像の保存先をDBに設定している(OPENPNE_TMP_IMAGE_DB を true に設定している)場合、画像のデータが画像用のDBに保存されない。

■原因

OPENPNE_TMP_IMAGE_DB が true の場合、画像保存先を指定せずにDB保存処理を呼び出しているのが原因。

■修正内容

OPENPNE_TMP_IMAGE_DB が true の場合にも、画像追加の共通関数を使用するよう変更し、画像用DB設定が適用されるよう修正した。

■関連チケット

  • #4372:一時画像をDBに保存する機能で一時保存した画像が削除されない

■関連情報

http://sns.openpne.jp/?m=pc&a=page_fh_diary&target_c_diary_id=19681より転記

config.phpでOPENPNE_TMP_IMAGE_DBをtrueにし、
かつ、画像データ保存用DBの設定を有効にしている場合、
アップロードされた画像が本来であれば画像データ保存用DBに登録されるはずだが、通常のDBに保存される。

ちなみに改造作業中にソースコードレベルで発見し、検証の結果再現を確認。
おそらく、webapp/lib/util/image.php の image_insert_c_image4tmpで、
if(!OPENPNE_TMP_IMAGE_DB)のelseの処理にて
db_insert("c_image", $params)に投げているのが原因。
$db->insert(...) といった形にする必要がありそう。

環境:OpenPNE 2.12.5 

Change History

01/29/09 17:44:07 changed by kiwa

  • keywords deleted.
  • version set to 2.12.x & 2.13.x.

検証もあるのでキーワード外します。

10/23/09 22:12:39 changed by ogawa

  • owner changed from nobody to ogawa.
  • status changed from new to assigned.

10/23/09 22:17:45 changed by ogawa

以下のリビジョンで修正しました。

10/23/09 22:30:09 changed by ogawa

  • keywords set to OpenPNE2.12.16 確認中.
  • description changed.
  • milestone set to OpenPNE2.14.3.

10/23/09 22:40:49 changed by ogawa

2.14で画像サイズを追加する処理が動作していなかったのを修正しました。

(follow-up: ↓ 7 ) 11/12/09 16:28:18 changed by imamura623

  • keywords changed from OpenPNE2.12.16 確認中 to OpenPNE2.12.16 差し戻し.

動作テストしました。

  • 確認画像用の一時ファイルが削除されない時があるようです
    • アルバム画像の追加確認画面からログアウトした場合
    • アルバム画像の追加確認画面からマイホーム等のリンクをクリックした場合(これは次回アルバム写真追加実行時に削除される様子)

(in reply to: ↑ 6 ) 11/12/09 17:16:21 changed by imamura623

  • keywords changed from OpenPNE2.12.16 差し戻し to OpenPNE2.12.16 確認中.
  • description changed.

Replying to imamura623:

動作テストしました。 * 確認画像用の一時ファイルが削除されない時があるようです * アルバム画像の追加確認画面からログアウトした場合 * アルバム画像の追加確認画面からマイホーム等のリンクをクリックした場合(これは次回アルバム写真追加実行時に削除される様子)

上記の指摘は今回の修正と関係性が低いバグと判断し別チケットで対応します。

  • #4372:一時画像をDBに保存する機能で一時保存した画像が削除されない

(follow-up: ↓ 9 ) 11/12/09 19:52:31 changed by imamura623

  • keywords changed from OpenPNE2.12.16 確認中 to OpenPNE2.12.16 差し戻し.

動作テストしました。

  • 一時画像をDBに保存するを使用するとアップロードした写真が表示されません(画像保存用DBのc_imageには保存されている)

アルバム写真、プロフィール画像、メッセージ送信、日記作成で確認しましたが表示されませんでした。

(in reply to: ↑ 8 ) 11/16/09 20:41:01 changed by ogawa

  • keywords changed from OpenPNE2.12.16 差し戻し to OpenPNE2.12.16 確認中.

Replying to comment:8:

二重エスケープされているのが原因でした。以下のリビジョンで修正しました。

(follow-ups: ↓ 11 ↓ 12 ) 11/17/09 15:51:29 changed by imamura623

  • keywords changed from OpenPNE2.12.16 確認中 to OpenPNE2.12.16 差し戻し.

動作テストしました。
まだ画像DBオプションと一時画像をDBに保存するが有効のときにアップロードした画像が表示されない箇所があります。

2.14.xの結果

  • プロフィール画像
  • メッセージに添付した画像
  • 写真付きの日記
  • 写真付きのトピックとイベント
  • アルバム写真挿入ダイアログ画面(mainのDBにアルバム画像が保存されているアルバムの場合)

2.12.xの結果

  • アルバム写真挿入ダイアログ画面(mainのDBにアルバム画像が保存されているアルバム場合)

(in reply to: ↑ 10 ) 11/17/09 16:18:55 changed by imamura623

Replying to imamura623:

* アルバム写真挿入ダイアログ画面(mainのDBにアルバム画像が保存されているアルバム場合)

image用のDB利用時にmainのDBに保存されている画像は本来表示されないので、この指摘は無視してください。
mainのDBに保存されている画像がimage用DB使用時に表示されるのは画像キャッシュによるものであると思われます。

(in reply to: ↑ 10 ) 11/17/09 17:43:18 changed by ogawa

  • keywords changed from OpenPNE2.12.16 差し戻し to OpenPNE2.12.16 確認中.

Replying to comment:10:

2.14.x の問題を修正しました。

画像が表示されないだけでなく、2.14 で追加された画像ファイルサイズ記録用の c_image_size テーブルへのデータ登録も正常に動作していない状態でした。

11/18/09 15:00:52 changed by imamura623

動作確認しました。

  • 画像が表示されることを確認
  • 画像サイズが登録されることを確認

問題ありません。

11/18/09 16:25:51 changed by shingo

  • keywords changed from OpenPNE2.12.16 確認中 to OpenPNE2.12.16 テスト待ち.

確認しました。

11/18/09 16:28:54 changed by shingo

  • keywords changed from OpenPNE2.12.16 テスト待ち to OpenPNE2.12.16.
  • status changed from assigned to closed.
  • resolution set to fixed.

閉じます