Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request;
use App\Good;
use App\Image;
class testpost extends Controller
{
//
public function execute(Request $request){
$directory = "/Users/local/Desktop/111/2.png";
//unlink($directory);
dd(Storage::delete($directory));
//$status_delete_file=Storage::deleteDirectory($directory);
}
}
Пытаюсь просто удалить вот файл "/Users/local/Desktop/111/2.png"
в итоге Storage ни сам файлик ни папку 111 целиком не удаляет, всегда возвращает false. А вот если использовать родной метод php unlink то без проблем сносит.
Те с правами точно нет заморочек, все делаю на локале да и unlink бы не работал. Что может быть?
Пробовал и в локальное хранилище складывать ну по пути storage/app/public тоже самое. Не могу понять.
-----------------
версия 5.4
PHP 7.1.1
filesystems.php
https://paste.laravel.io/f6ed6219-6200- … cd401387f5
.env
https://paste.laravel.io/f8ce9006-9c09- … 8f35570107
app.pjp
https://paste.laravel.io/1f17fce9-4480- … 22483ddc44
Изменено Normand (25.09.2017 00:05:15)
Не в сети
Storage работает не от корня файловой системы, все пути для него являются относительными от родительской папки, которая задаётся в настройках конкретного сториджа в config/filesystems.php
Не в сети
Storage работает не от корня файловой системы, все пути для него являются относительными от родительской папки, которая задаётся в настройках конкретного сториджа в config/filesystems.php
а чем отличается удаление по полному пути и не по полному. Вы мне уже 4 человек об этом говорите... и я вчера благополучно перписал все на локальное хранилище и доставание через симлинку, результат точно такой же: Storage не работает. Работает только File::
Не в сети
потому что Storage – это абстракция над операциями с файлами. файлы, с которыми он работает, могут находиться как локально так и удалённо, поэтому корнем для путей является та папка, которая настроена в config/filesystems.php. по умолчанию в установке ларавеля настроено два хранилища – одно local (используется по умолчанию) использует папку storage/app, второе – public в папке storage/app/public, оно может быть публично доступно через веб-сервер если выполнить команду php artisan storage:link – через симлинк в папке public. именно эти папки и являются корневыми для указанных хранилищ и через Storage можно получить доступ только к ним и вложенным в них папкам. если понадобится кластеризовать хранение файлов, использовать CDN или переехать в амазон – при условии что код работает с файлами только через Storage, это делается тупо изменением настроек в конфиге, в коде ничего менять не нужно. и это очень удобно, конечно же, для того оно и задумано так…
Не в сети
Страницы 1