Как я могу получить расширение файла в PHP, если у меня есть только имя файла?

У меня есть путь к файлу изображения /files/uploads/1 но, как вы видите, у меня нет расширения, поэтому я не могу отобразить изображение. Как я могу получить расширение файла, чтобы я мог отобразить его? Спасибо!

РЕДАКТИРОВАТЬ: Вот код, который я пробовал. BMP, PNG, JPG, JPEG и GIF являются единственно возможными расширениями, но $ path заканчивается тем, что ему никогда не будет присвоено значение.

$exts = array('bmp','png','jpg','jpeg','gif');
foreach ($exts as $ext) {
if (file_exists("/files/uploads/" . $id . "." . $ext)) {
$path = "/files/uploads/" . $id . "." . $ext;
}
}

0

Решение

Лично у меня была проблема, когда у меня была ненужная косая черта (/) до моего пути в file_exists проверьте, но решение вопроса остается прежним.

$exts = array('bmp','png','jpg','jpeg','gif','swf','psd','tiff','jpc','jp2','jpx','jb2','swc','iff','wbmp','xbm','ico');
foreach ($exts as $ext) {
if (file_exists("files/uploads/" . $id . "." . $ext)) {
$path = "/files/uploads/" . $id . "." . $ext;
}
}
0

Другие решения

Вам не нужно расширение файла, чтобы показать изображение.

<img src="/files/uploads/1">

Покажет изображение. Это так же, как работают изображения placehold.it

<img src="http://placehold.it/350x150">
0

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

это должно выглядеть просто так:

$fullpath = ('uploadword/'.$filename);
// then call it
<img  src='".$fullpath."'>

Обычный сценарий для загрузки всех изображений в определенную папку, затем получить имя файла и сохранить его в базе данных

move_uploaded_file($file_tmp,"upload/".$filename);

Некоторые профессионалы делают более сложным, чтобы сделать имя файла уникальным, потому что они ожидали некоторых дублированных значений и многих причин, вот одна простая техника:

$anynameorfunction = "";// random number etc...
$newname = $anynameorfunction.$filename;
move_uploaded_file($file_tmp,"upload/".$newname);

Таким образом, когда они называют это снова, это должно быть просто так

  $fullpath = ('uploadword/'.$newname);
// then call it
<img  src='".$newname."'>

Это очень просто, и я хочу, чтобы вы поняли, что я имею в виду

0
По вопросам рекламы [email protected]