Как сделать уникальное имя для изображения при загрузке в laravel? - PullRequest
0 голосов
/ 06 декабря 2018

Я использую laravel 5.5 и загружаю изображение.Мой код генерирует имя неправильно.

 $image_icon = $request->file('image_icon');
 $data['image'] = $image_icon->getClientOriginalName().'.'.time();
 $destinationPath = public_path('/images');
 $image_icon->move($destinationPath, $data['image']);

Выходное имя изображения выглядит так: heart.png.1544074437

Имя должно быть: heart1544074437.png

Ответы [ 6 ]

0 голосов
/ 06 декабря 2018

Вы также можете использовать Laravel из коробки для загрузки:

$request->photo->store('images');

Для дополнительной проверки здесь: https://laravel.com/docs/5.5/requests#files

0 голосов
/ 06 декабря 2018

Над кодом требуется небольшое улучшение, как указано ниже:

$image_icon = $request->file('image_icon');

$fileName = pathinfo($image_icon->getClientOriginalName(), PATHINFO_FILENAME);

$extension = pathinfo($image_icon->getClientOriginalName(), PATHINFO_EXTENSION);

$data['image'] = $image_icon->getClientOriginalName().time().'.'.$extension;

Я не проверял этот фрагмент кода, но он должен работать.

0 голосов
/ 06 декабря 2018

попробуйте

 $imgName = md5(str_random(30).time().'_'.$request->file('image_icon')).'.'.$request->file('image_icon')->getClientOriginalExtension();
0 голосов
/ 06 декабря 2018

Вы можете сделать это:

$image = explode(".", $image_icon);
$image_name = $image[0];
$image_extension = array_slice($image , -1, 1);

$data['image'] = $image_name.time().'.'.$image_extension[0];

Надеюсь, это будет полезным и простым решением вашей проблемы.Спасибо

0 голосов
/ 06 декабря 2018

Использовать pathinfo()

pathinfo - возвращает информацию о пути к файлу

path Путь для анализа.

опцииЕсли присутствует, указывает конкретный элемент, который будет возвращен;один из PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION или PATHINFO_FILENAME.

Если параметры не указаны, возвращаются все доступные элементы.

$image_icon = $request->file('image_icon')->getClientOriginalName();

$filename = pathinfo($image_icon, PATHINFO_FILENAME);
$extension = pathinfo($image_icon, PATHINFO_EXTENSION);
$data['image'] = $filename.time().'.'.$extension;
0 голосов
/ 06 декабря 2018

попробуйте это, используя pathinfo функция

извлечение имени файла ..

$fileName = pathinfo($image_icon->getClientOriginalName(), PATHINFO_FILENAME);

извлечение расширения

$extension = pathinfo($image_icon->getClientOriginalName(), PATHINFO_EXTENSION);

создать новый файлимя.

$fullFileName = $fileName."-".time().$image_icon->getClientOriginalExtension();

для получения дополнительной информации см. этот вопрос

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