Ответ 1
Смотрите: file_exists()
Использование:
if (!file_exists($path)) {
// path does not exist
}
В Laravel:
if(!File::exists($path)) {
// path does not exist
}
Мне нужно знать, существует ли папка перед ее созданием, потому что я храню фотографии внутри, и я боюсь, что фотографии будут удалены, если они будут перезаписаны. Код, который я должен создать, выглядит следующим образом
$path = public_path().'/images';
File::makeDirectory($path, $mode = 0777, true, true);
как я могу это сделать?
Смотрите: file_exists()
Использование:
if (!file_exists($path)) {
// path does not exist
}
В Laravel:
if(!File::exists($path)) {
// path does not exist
}
С помощью Laravel вы можете использовать:
$path = public_path().'/images';
File::isDirectory($path) or File::makeDirectory($path, 0777, true, true);
Кстати, вы также можете поместить подпапки в качестве аргумента в вспомогательную функцию пути Laravel, как это:
$path = public_path('images/');
Рекомендуемый способ - использовать
if (!File::exists($path))
{
}
Смотрите исходный код
Если вы посмотрите на код, он вызывает file_exists()
Путь -1:
if(!is_dir($backupLoc)) {
mkdir($backupLoc, 0755, true);
}
Путь -2:
if (!file_exists($backupLoc)) {
mkdir($backupLoc, 0755, true);
}
Путь -3:
if(!File::exists($backupLoc)) {
File::makeDirectory($backupLoc, 0755, true, true);
}
Не забудьте использовать команду Illuminate\Support\Facades\File;
Путь -4:
if(!File::exists($backupLoc)) {
Storage::makeDirectory($backupLoc, 0755, true, true);
}
Таким образом, вы должны сначала поместить конфигурацию в папку конфигурации filesystems.php. [Не рекомендуется, если вы не используете внешние диски]
Я обычно создаю случайные папки внутри изображений для каждого файла, что помогает немного в шифровании URL-адресов, и, таким образом, публикам будет сложно просмотреть ваши файлы, просто введя URL-адрес в ваш каталог.
// Check if Logo is uploaded and file in random folder name -
if (Input::hasFile('whatever_logo'))
{
$destinationPath = 'uploads/images/' .str_random(8).'/';
$file = Input::file('whatever_logo');
$filename = $file->getClientOriginalName();
$file->move($destinationPath, $filename);
$savedPath = $destinationPath . $filename;
$this->whatever->logo = $savedPath;
$this->whatever->save();
}
// otherwise NULL the logo field in DB table.
else
{
$this->whatever->logo = NULL;
$this->whatever->save();
}