Как правильно отобразить расширение файла из файла HTML POST, используя PHP? - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь повторить расширение загруженного налогового документа. Документом может быть любое изображение или PDF. Я планирую использовать расширение для переименования файла с соответствующим расширением позже в коде.

В настоящее время расширение не отражается.

Я попробовал несколько разных методов и просмотрел документацию и форумы. Кажется, я все еще делаю что-то не так.

Мой HTML:

<input type="file" class="" id="TaxFile" name="TaxFile" accept="image/*,application/pdf" ><br /><br />

Мой PHP:

$taxpath = pathinfo($_FILES["TaxFile"]["tmp_name"]); echo $taxpath['extension'] . "\n123";

echos '123'

Мой альтернативный PHP:

$taxpath = $_FILES["TaxFile"]["tmp_name"]; $ext = pathinfo($taxpath, PATHINFO_EXTENSION); echo $ext;

ничего не слышно

Я ожидал увидеть эхо: «PDF 123" и "pdf"

* Мой более поздний код фактически сохраняет файл по назначению, используя move_uploaded_file($_FILES["TaxFile"]["tmp_name"], $target_file). Просто $ target_file не будет включать правильное расширение.

Ответы [ 3 ]

2 голосов
/ 11 июля 2019

Это должно работать для вас, если вы используете name вместо tmp_name

$path_parts = pathinfo($_FILES["TaxFile"]['name']);
$extension = $path_parts['extension'];
echo $extension;
1 голос
/ 11 июля 2019

tmp_name - это временное имя / местоположение файла на диске.

Попробуйте использовать $_FILES["TaxFile"]["name"], чтобы получить исходное имя файла.

В противном случае ваш метод захвата расширения с помощью pathinfo() и PATHINFO_EXTENSION был правильным.

1 голос
/ 11 июля 2019

Это решит

$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);

так что в вашем файле конкатенация переменных

echo $path.'.'.$ext;
...