laravel (или core PHP) — Могу ли я получить файл с сервера, не зная файла ext?

#php #file #laravel

#php #файл #laravel

Вопрос:

Я сделал boo boo….

Я создал систему, которая позволяет пользователю загружать ресурсы и отслеживать их. Круто, это работает.

Затем я использовал ту же систему для загрузки ресурсов, специфичных для сайта (логотипы, снимки сотрудников и т.д.)… а затем понял, что, поскольку это очень статичные iamges, мне не нужно использовать систему ресурсов.

Итак, теперь у меня на сервере хранения есть папка, полная файлов iam, помеченных:

 1_headshot.jpg
2_logo.png
  

и т. Д

где номер — это ссылка на базу данных моего сотрудника… моя проблема в том, что я не отследил, какой тип файла загружен…

Мои варианты:

  1. Ограничьте пользователям загрузку только одного формата файла
  2. Используйте PHP для получения файла независимо от ext файла…

Нет 1, я могу сделать .. но мне интересно .. возможно ли 2 ..??

Я извлекаю из корзины S3, если это имеет какое-либо значение?

Комментарии:

1. Почему вы хотите сохранить этот трек? Для того, чтобы пользователь мог загрузить его обратно?

2. Если пользователь загружает jpg в качестве своего iage, мне нужно знать, как отобразить его в формате jpg

3. На самом деле вас не должно волновать расширение. Вам следует заботиться о типе mime

4. Круто, как я могу получить это из файла, если я не знаю ext? Приведенный ниже ответ идеален, но я хотел бы услышать ваши мысли.

Ответ №1:

   $filename = filename without extension ;
  $storage_path=storage_path();
  $files=File::glob($storage_path.'/'. $filename.'*');
  if($files) {
      $file=$files[0];
   } 
  

$file будет содержать имя файла с расширением, если оно существует

Комментарии:

1. Это отлично работает.. У меня была проблема в том, что я разрешал пользователям загружать что угодно, и в этом была проблема .. поскольку я использую «вмешательство», я просто сохранил загруженные изображения в требуемом формате .. но действительно ценю быстрый ответ!!