Magentoは、デフォルトで画像を次のように保存します
~/D/E/DEFAULT.jpg
ファイル名の最初の2文字を使用して、フォルダー構造を作成します。別の方法で動作させたいのですが、管理者バックエンドやGoogle検索で何も見つかりません。誰かがこれを以前に経験したことがありますか?
Magentoは、デフォルトで画像を次のように保存します
~/D/E/DEFAULT.jpg
ファイル名の最初の2文字を使用して、フォルダー構造を作成します。別の方法で動作させたいのですが、管理者バックエンドやGoogle検索で何も見つかりません。誰かがこれを以前に経験したことがありますか?
あなたが探しているものはクラスVarien_File_Uploader
で処理されているようですので、Magentoのlib/Varienフォルダの奥深くにあります。getDispretionPath($fileName)
次のような方法があります。
static public function getDispretionPath($fileName)
{
$char = 0;
$dispretionPath = '';
while (($char < 2) && ($char < strlen($fileName))) {
if (empty($dispretionPath)) {
$dispretionPath = DIRECTORY_SEPARATOR
. ('.' == $fileName[$char] ? '_' : $fileName[$char]);
} else {
$dispretionPath = self::_addDirSeparator($dispretionPath)
. ('.' == $fileName[$char] ? '_' : $fileName[$char]);
}
$char ++;
}
return $dispretionPath;
}
基本的に、whileループには最大2回の実行があり、ディレクトリセパレータの後にファイル名の文字(または文字が「。」の場合は「_」)を追加して、$dispretionPath
そのパスを返します。このメソッドはsave()
、同じクラスのメソッドで使用され、ディレクトリが作成されます。
$this->_dispretionPath = self::getDispretionPath($fileName);
$destinationFile.= $this->_dispretionPath;
$this->_createDestinationFolder($destinationFile);