Как получить на стороне клиента абсолютный путь к выбранному файлу в php - PullRequest
0 голосов
/ 10 июня 2018

Я хочу знать, есть ли способ получить абсолютный путь к выбранному файлу на стороне клиента!

$_FILES['xml_file']['tmp_name']; Здесь также указывается путь к выбранному файлу, но путь к нему на стороне сервера ... Его результаткак это C:\xampp\tmp\php2679.tmp

Я хочу C:\Users\Sami\Desktop\data\myfile.xml, где находится мой фактический файл.

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

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

Когда вы нажимаете кнопку обзора , он выбирает файл.Когда вы нажимаете кнопку submit , весь файл отправляется из браузера на веб-сервер, и PHP действительно помещает весь файл во временный каталог серверов php. Затем ваш скрипт вызывается.

Так что, когда вы попытаетесь получить абсолютный путь от $_FILES['xml_file']['name'] или $_FILES['xml_file']['tmp_name'] или realpath($_FILES['xml_file']['name']), вы получите путь на сервере.

Решением этой проблемы было бы просто скопировать файл куда-нибудь и больше не запрашивать загрузку файла.Вы должны быть уверены, что когда бы вы ни копировали его на свой веб-сервер, у сервера есть разрешения для этого.Обычно это включает предоставление разрешения на запись пользователю, от имени которого работает веб-сервер (обычно пользователь «apache» или «nobody» для серверов на основе Apache), в специальный каталог, который вы создали для этой цели.

Копия доступна на PHP.http://us3.php.net/manual/en/function.copy.php

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

0 голосов
/ 10 июня 2018

вы можете попробовать echo realpath($_FILES['xml_file']['name']); на своем php.

тогда вывод будет:

C:\Users\Sami\Desktop\data\myfile.xml

...