Я добавил поле загрузки в мой CRUD-контроллер.Загрузка работает нормально, и файл загружается в мой каталог / storage / private.
Вот файл filesystems.php:
'private' => [
'driver' => 'local',
'root' => storage_path('private')
],
Вот мои пользовательские функции в модели File.php:
public static function boot()
{
parent::boot();
static::deleting(function($file) {
\Storage::disk('private')->delete($file->file);
});
}
public function setFileAttribute($value)
{
$attribute_name = "file";
$disk = "private";
$destination_path = "";
// Cifratura del file
file_put_contents($value->getRealPath(), file_get_contents($value->getRealPath()));
$this->uploadFileToDisk($value, $attribute_name, $disk, $destination_path);
}
А вот мой код FileCRUDController.php:
$this->crud->addField(
[ // Upload
'name' => 'file',
'label' => 'File to upload',
'type' => 'upload',
'upload' => true,
'disk' => 'private'
]);
Однако, когда я пытаюсь загрузить файл, он пытается извлечь его из http://localhost:8000/storage/myfile.png вместоhttp://localhost:8000/storage/private/myfile.png
Что я делаю не так?Большое спасибо.
Я также хотел бы знать, есть ли способ подключить пользовательскую функцию вместо загрузки файла непосредственно из представления CRUD.Мои файлы зашифрованы, и мне нужен контроллер, который заботится о расшифровке перед отправкой файлов пользователю.