1

Magentoは、デフォルトで画像を次のように保存します

~/D/E/DEFAULT.jpg

ファイル名の最初の2文字を使用して、フォルダー構造を作成します。別の方法で動作させたいのですが、管理者バックエンドやGoogle検索で何も見つかりません。誰かがこれを以前に経験したことがありますか?

4

1 に答える 1

2

あなたが探しているものはクラス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);
于 2013-01-21T22:45:43.787 に答える