1
我在Laravel 5.1中有一個項目PHP中的文件安全和刪除文件
而且我有產品圖片。
我想刪除圖片文件,當我刪除數據庫中的產品。
我像根
img/product
我有圖片的版本
public function getVersions()
{
return [
'large' => '/large',
'medium' => '/medium',
'small' => '/small',
'thumbnail' => '/thumbnail',
'root' => ''
];
}
我的產品形象根
$productImageRoot = public_path('img/product/'.$product_id);
我想了解以安全方式刪除所有照片的最佳做法是什麼?
這裏是我刪除產品的所有圖片的代碼。
/**
* @desc Ürün resimlerini ve resimlerin bulunduğu klasörleri siler.
* @param $product_id
* @return bool
* @throws \Exception
*/
public function deleteAllPictureFiles($product_id)
{
/**
* Resim türlerinin klasör yollarını çekiyoruz.
*/
$folderPaths = $this->getVersions();
$productImageRoot = public_path('img/product/'.$product_id);
$pictures = (new ProductPicture)->getAllPicturesOfProduct($product_id);
try
{
/**
* Resim yolu yazılabilir ise...
*/
foreach($pictures as $picture)
{
/**
* Tüm resimleri siliyoruz.
*/
foreach($folderPaths as $folderPath)
{
unlink($productImageRoot.$folderPath.'/'.$picture->picture);
}
}
/**
* Tüm klasörleri siliyoruz.
*/
foreach($folderPaths as $folderPath)
{
rmdir($productImageRoot.$folderPath);
}
return TRUE;
}
catch(\Exception $e)
{
/**
* Resim yolu yazılamaz ise hata dönderiyoruz.
*/
throw new \Exception(trans('product.is_not_writable'));
}
此代碼導致路徑不可寫的錯誤。
現在是我不確切的話題。我想學習文件和文件夾的chmod選項。我在刪除過程中應該怎麼做?什麼是最安全的刪除文件的方式?我不想使用chmod 777.我知道這是不安全的。
你嘗試過使用775嗎? –