在特定于名称的目录中上传图像,例如 /i/m/image.jpg

Upload images in directory specific to name like /i/m/image.jpg

我希望在我的服务器上的目录 /media/catalog/product 中上传图片 然后它将获取图像的第一个字符并将其放在与该字符匹配的目录中(如果不存在,也需要创建目录),然后对第二个字符执行相同的操作。

例如 如果我上传一张名为 product.jpg 的图片,它将最终出现在目录 /media/catalog/product/p/r/

test.jpg -> /media/catalog/product/t/e/

图片都在我电脑的一个文件夹里,或者我可以把它们全部上传到一个目录。

我正在尝试使用 Magento 版本 1.9 执行此操作

<?PHP

/* TRANSFORM FILES ARRAY */
function diverse_array($vector) { 
    $result = array(); 
    foreach($vector as $key1 => $value1) 
        foreach($value1 as $key2 => $value2) 
            $result[$key2][$key1] = $value2; 
    return $result; 
}

/* DO THE TRANSFORMATION, warning key for the superglobal $_FILES may be "picture" */
$upload = diverse_array($_FILES["upload"]);

/* create folder if not exists and then move file to the right folder */
foreach($upload as $current)
{
    mkdir("/media/catalog/product/" . $current["name"][0]);
    mkdir("/media/catalog/product/" . $current["name"][0] . "/" . $current["name"][1]);
    move_uploaded_file($current["tmp_name"],
    "media/catalog/product/" . $current["name"][0] . "/" . $current["name"][1] . "/" . $current["name"]);
}

请注意,您可能想要更改目录的权限,请参阅 mkdir manual,并检查输入文件的名称。