Папки не создаются с использованием специальных символов - PullRequest
0 голосов
/ 25 июня 2019

Я делаю пользовательскую электронную торговлю в laravel 5.8. Проблема, с которой я сталкиваюсь, заключается в том, что при загрузке изображений продуктов создается папка с именем продукта в общедоступном каталоге и помещаются изображения продуктов в эту папку, но еслиназвание продукта длинное или содержит специальные символы, laravel не создает эту папку и не загружает ни одного изображения, а также вот код, который я использую для загрузки изображений.

if ($request->file('logo')) {
   $file = $request->file('logo');
   $logo = $file->getClientOriginalName();
   $file->move(public_path('Product Images/' . $request->name), $logo);
 }

Любая помощь будеточень признателен.Заранее спасибо.

1 Ответ

0 голосов
/ 25 июня 2019

Я думаю, что концепция, которую вы пробуете, не очень хорошая идея.

1.) Если у вас много изображений, вы не должны сохранять их в одной папке. Возможно, у вас возникнут проблемы, если у вас будет слишком много картинок в одной папке. Обычно вы генерируете хеш изображения и сохраняете их в структуре папок, например: 891904122.jpeg в папку 2/2/1/4/891904122.jpeg.

Тогда у вас нет проблем со специальными символами.

Для этого у Laravel есть отличная файловая абстракция.

https://laravel.com/docs/5.8/filesystem https://github.com/laravel/framework/blob/5.8/src/Illuminate/Http/FileHelpers.php#48

Взгляните на hashName.

2.) Во-вторых, вам следует избегать пробелов в именах папок. Когда вы копируете какую-то папку между системами, у вас могут возникнуть проблемы.

3.) Существуют великолепные Шоп-Системы, такие как Sylius, которые базируются на Symfony или Aimios, которые базируются на Laravel. Есть намного больше. Вы можете посмотреть, как они решают проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...