В настоящее время медиатека позволяет загружать файлы с пробелами в них.Я хочу предотвратить это по ряду причин.Мой текущий план состоит в том, чтобы переименовать файл после того, как он был загружен в событие file.media.upload.
Я получаю $ originalPath и экземпляр UploadedFile ($ newPath)
Iможно получить исходное имя файла, используя ..
$newPath->getClientOriginalName();
, а затем очистить его.
[Обновить]
Чтобы переименовать файл, я использовал метод moveFile () класса MediaLibrary.См. Обновленный код ниже
Event::listen('media.file.upload', function($widget, $originalPath, $newPath) {
if (strpos($originalPath, ' ') !== false) {
$sanitizedFilePath = str_replace(' ', '-', $originalPath);
MediaLibrary::instance()->moveFile($originalPath, $sanitizedFilePath);
}
});
Event::listen('media.file.rename', function($widget, $originalPath, $newPath) {
if (strpos($newPath, ' ') !== false) {
$sanitizedFilePath = str_replace(' ', '-', $newPath);
MediaLibrary::instance()->moveFile($newPath, $sanitizedFilePath);
}
});
Event::listen('media.folder.create', function($widget, $newFolderPath) {
if (strpos($newFolderPath, ' ') !== false) {
$sanitizedFilePath = str_replace(' ', '-', $newFolderPath);
MediaLibrary::instance()->moveFolder($newFolderPath, $sanitizedFilePath);
}
});
Event::listen('media.folder.rename', function($widget, $originalPath, $newPath) {
if (strpos($newPath, ' ') !== false) {
$sanitizedFilePath = str_replace(' ', '-', $newPath);
MediaLibrary::instance()->moveFolder($newPath, $sanitizedFilePath);
}
});
Проблема, с которой я сталкиваюсь сейчас, заключается в том, что изображения, загруженные через richeditor, не возвращают переименованный файл, он все еще пытается показать файл с его исходным / загруженным именем файла.
Временное решение, которое я использовал в данный момент, состоит в том, чтобы скрыть параметр загрузки и отключить вставку изображений в редактор, расширив параметры Froala, поэтому вы вынуждены выбирать изображение с помощью библиотеки мультимедиа..