Labo

EC-CUBE3 分室

【3.0.15】商品画像をアップロードファイル名のまま保存する方法

2018年03月17日 / 投稿者名:chiharu


今回はちょっと変わった変更内容です。
正直通常の運用をされる場合にはあまりお勧めいたしません。
内容としては商品画像ファイルをアップロードファイル名のまま保存する方法です。
 
今回のクライアントは商品を非常に多く持っております。
また、商品についてマイナーチェンジが多く商品画像がそれなりの頻度で変更されるそうです。
 
通常は商品写真を管理画面から一件ずつ変更行う形です。
しかし、商品を一件ずつ管理画面にて変更していくのは時間と労力が必要です。
もし、商品写真自体に体系だった命名規則がが存在している場合、FTP での一括アップロードができると有難いです。
実際のファイル名を設定していただく場合や FTP の処理には手間はかかりますが、管理画面での処理が不要であれば作業効率は結構上がります。
 
ということで EC-CUBE でのファイル保存時のファイル名称について試してみたいと思います。
 
 
■商品画像のファイル名を変更しない方法
 
 ●ファイル
  <インストールフォルダ>/src/Eccube/Controller/Admin/Product/ProductController.php
 ●モジュール
  addImage
 ●参考行目
  230行目ぐらいから
  ※
   既存のカスタマイズ内容は顧慮してません。
   該当ファイルは初期の状態からカスタマイズをしています。
 ●変更内容

                    $extension = $image->getClientOriginalExtension();
                    $filename = date('mdHis').uniqid('_').'.'.$extension;
                    $image->move($app['config']['image_temp_realdir'], $filename);
                    $files[] = $filename;

 ↓

                    $extension = $image->getClientOriginalExtension();
                    //$filename = date('mdHis').uniqid('_').'.'.$extension;
                    $filename = $image->getClientOriginalName();
                    $image->move($app['config']['image_temp_realdir'], $filename);
                    $files[] = $filename;

 ●概要説明
  変更対象は一行だけです。
  EC-CUBE は保存するファイル名を「MMddHHmmss_ユニークID.拡張子」から「アップロードしたファイル名」に変更されます。
  今回は特に説明することもありませんね(笑)
 
 
まぁ、主な使用方法としては一つの商品にないして定期的に画像を変更する場合でしょうか。
これで FTP で確認した時点でどの商品の画像ファイルかがわかりやすいと思います。
管理画面にて一つずつ画像のアップロードする手間は無くなるはずです。
画像ファイル名を体系的に管理されている方には非常に便利ですね。
 
 
と云うことで今回はちょっと短い気もしますが終了とします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

* Copy This Password *

* Type Or Paste Password Here *

*

コメント欄にコードを挿入したい場合は、[php][/php] を使ってください。