我使用laravel 5.3如何在移動圖像時動態創建文件夾?
我的代碼來移動圖像是這樣的:
private function savePhoto($photos, $id)
{
foreach($photos as $key => $photo) {
$temp = storage_path() . DIRECTORY_SEPARATOR . 'temp' . DIRECTORY_SEPARATOR . $photo['name'];
$destinationPath = public_path() . DIRECTORY_SEPARATOR . 'img'. DIRECTORY_SEPARATOR .'products'.DIRECTORY_SEPARATOR.$id.DIRECTORY_SEPARATOR.$photo['name'];
if(rename($temp , $destinationPath)){
echo 'moved!';
}
else {
echo 'failed';
}
}
}
在被執行時存在錯誤是這樣的:
重命名(C:\ XAMPP \ htdocs中\ myshop \ storage \ temp \ NOTFCjMipXwFhBICo1tj6VXP5Qhv92Fg1kmawcUd.jpeg,C:\ xampp \ htdocs \ myshop \ public \ img \ products \ 77 \ NOTFCjMipXwFhBICo1tj6VXP5Qhv92Fg1kmawcUd.jpeg): 系統找不到指定的路徑。 (代碼:3)
我認爲發生錯誤是因爲$ id文件夾是動態生成的。 $ id文件夾取決於參數ID。如果參數ID = 77,這將形成這樣的:
C:\ XAMPP \ htdocs中\ myshop \ PUBLIC \ IMG \產品\ 77 \ NOTFCjMipXwFhBICo1tj6VXP5Qhv92Fg1kmawcUd.jpeg
所以發生錯誤的原因文件夾77尚不存在
如何在移動圖像之前首先製作文件夾77(這是動態生成的)?
更新
樣品陣列結果從$照片是這樣的:
Array
(
[0] => Array
(
[id] => 1
[name] => vYcHWLXpwhC9WfXd4XCB2emg83WMtWHphyUBq9MV.jpeg
)
[1] => Array
(
[id] => 2
[name] => 1STr51oF8cunSsNEJZyS9upI0hNHYMXjLCCSNonz.jpeg
)
)
我不得不嘗試。但它是一樣的。你能完全更新你的答案嗎?所以它適應我的情況 –
@samuel,更新了我的答案 –
存在這樣的錯誤:'mkdir():File exists'。如果臨時文件夾中有2張圖像,只移動了1張圖像。應該有2個圖像移動 –