* 添付ファイルを削除後に同名ファイルを再添付すると過去のファイルのダウンロードカウンタが失われる [#g894604d]

- ページ: [[BugTrack2]]
- 投稿者: [[umorigu]]
- 優先順位: 低
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2016-01-26 (火) 03:07:17
- バージョン: 1.5.0
- リリース予定バージョン: 1.5.1

** メッセージ [#d6057c07]

再現手順:

- 1. 適当なページに a.txt を添付する
- 2. a.txt を3回ダウンロードする
- 3. 「詳細」を表示する→「アクセス数: 3」
- 4. a.txt を削除する
- 5. 添付 - 添付ファイル一覧 - a.txt (backup No.1) - 詳細 表示する→「アクセス数: 3」
- 6. a.txt をもう一度添付する
- 7. 添付 - 添付ファイル一覧 - a.txt (backup No.1) - 詳細 表示する→「アクセス数: 」(空表示) となる

期待値:

- 添付 - 添付ファイル一覧 - a.txt (backup No.1) - 詳細 表示する→「アクセス数: ''3''」

*** 対応 [#mbf61fe4]

- [[commit:7556fdb59a9b27ba4eb085492d7bb04ec343bf7b]] (branch_r1_5)
- [[commit:7556fdb59a9b27ba4eb085492d7bb04ec343bf7b]] AttachFile::getstatus - ログファイルがあれば処理を続行するようにした
- [[commit:2ec8d297ee2528b4d193f03564b6d06631364271]] AttachFile::getstatus - 戻り値のTRUE/FALSE条件を以前と同じ(activeなファイルが存在する場合(削除されていない場合)ture)に戻した。戻り値に関わらずstatusファイルの読み込みは継続

--------
- 同名ファイルが同一ファイルとは限らないのだから当然の動作では? -- [[../]] &new{2016-01-26 (火) 03:10:26};
- 同一ファイルとは限らない→新しいファイルとしてカウントする。 -- [[../../]] &new{2016-01-26 (火) 03:18:05};
- いえ、削除したタイミングでは過去のファイルがそれぞれにカウンタを持っている(過去のファイルをダウンロードするとそれぞれアクセス数が+1される)のですが、それがリセットされるのです -- [[umorigu]] &new{2016-01-26 (火) 04:09:32};
- なら、削除されたタイミングでカウンター類の情報を削除しなければならないってことですね -- [[->../../]] &new{2016-01-26 (火) 12:53:29};
- attach.inc.php -> AttachFile.getstatus()で、(バックアップファイルがあっても)実ファイルが無い場合にlogファイルを読んでないのが原因でした。修正しました。各ファイルのダウンロードカウンターが維持されるようになります -- [[umorigu]] &new{2016-01-27 (水) 00:18:05};
- 同名で別ファイルとかカウンタをリセットしたい場合はどうするんでしょう。いっそカウンタリセットを実装できませんか -- [[./]] &new{2016-01-28 (木) 14:13:59};
- もともと、同名でも過去のファイルとは別ファイル扱いです(ダウンロード数は別にカウントされます)。また.log ファイルを物理的に消せばカウンタは0になります(リセット)。ページカウンタ(countプラグイン)も気軽にリセットはできないので機能としては不要と判断しています -- [[umorigu]] &new{2016-01-28 (木) 22:55:50};
- 見返してみるとAttachFile::getstatus() はattach_freeze() やattach_rename() などのエラーメッセージで添付ファイルに対するfile_exists() の代わりに使われているような気がするのですが、返り値の条件をcommit:7556fdb59a9b27ba4eb085492d7bb04ec343bf7b (branch_r1_5)のようにログファイルの存在チェックのみにしてしまっても大丈夫なのでしょうか?(添付ファイル本体に対するfilesize() の結果がエラーになるかや後段の実装しだいかもですが)&br();単純に
 // ログファイル取得
の括りの後へ添付ファイル本体の存在確認を移動させれば、各種statusを得る処理は実行しつつFALSEを返す条件はそのまま~にできそうな気もします() --  &new{2016-02-06 (土) 23:53:06};
- 鋭い指摘ありがとうございます。その通りでした。getstatus() 戻り値のtrue/false条件は変更せずに、statusは読み込むようにしました -- [[umorigu]] &new{2016-02-07 (日) 09:55:05};

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.044 sec.

SourceForge