Выбор пути к папке, используя тип файла ввода - PullRequest
0 голосов
/ 19 ноября 2009

У меня проблема с PHP. Я использую <input type=file>, чтобы получить имя файла от пользователя. По сути, я хочу сохранить только путь к папке, а не файл, чтобы при отображении пути с помощью гиперссылки пользователь мог открыть каталог.

Но, используя <input type=file>, пользователь должен выбрать файл, тогда будет заполнено только текстовое поле файла. Теперь я хочу снять последнюю часть имени файла.

Как мне это сделать? Или есть лучший способ решить эту проблему?

EDIT:

Я использую что-то вроде этого в файле с именем 1.html:

<form method="post" action="update.php">
    <input type="file" name="attachment" id="attachment"></td> </tr>
 </form>

Теперь в update.php я использую что-то вроде этого:

$logpath1=$_POST['attachment'];

Обычно я получаю имя файла в $ logpath1, которое выбирает пользователь. Но дело в том, что тип ввода = файл будет работать только для файлов, а не папок.

Итак, как мне удалить имя файла из пути?

Пример: если пользователь выбирает,

C:\Documents and Settings\myusee\Desktop\new 2.cpp

Хочу скинуть new 2.cpp.

Я не уверен, как я могу использовать взрыв. Кроме того, я работаю на XAMPP Lite .

Ответы [ 3 ]

2 голосов
/ 19 ноября 2009

Вы можете сделать это по-другому, поставить скрытое поле <input type="hidden" id="something" name="something" /> и использовать jQuery (JavaScript), чтобы выбрать значение поля ввода файла и поместить его в скрытое поле перед отправкой и после отправки у вас будет полный путь, Я не знаю, работает ли это, но стоит попробовать.

0 голосов
/ 22 ноября 2009

1) ANY информация о пути к каталогу файловой структуры клиента представляет собой угрозу безопасности. POST представляет, JavaScript, Flash, приложения Java или любой другой веб-метод, который может это сделать, является эксплойтом. Я сомневаюсь, что Firefox, Internet Explorer, Safari, Opera или любой другой браузер позволят вам сделать это. Если метод найден - более поздняя версия, скорее всего, исправит этот эксплойт, и ваш код станет бесполезным.

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

$temp_path=$_FILES['attachment']['tmp_name'];

Однако это будет представлять угрозу безопасности для вашего SERVER . Кроме того, временному пути обычно запрещен доступ из Интернета. Обычно, только интерпретатор PHP может получить к нему доступ.

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

move_uploaded_file($_FILES['attachment']['tmp_name'], $the_directory_i_want);

Но поскольку $the_directory_i_want - это переменная , которую вы установили, вы бы это уже знали.

Звучит так, будто вы пытаетесь использовать WAMP и PHP в качестве какой-либо локальной файловой утилиты. Если это так, PHP не может быть хорошим решением. Вместо этого вы можете захотеть взглянуть на создание .HTA application.

0 голосов
/ 19 ноября 2009

Большинство браузеров запрещают доступ к информации о пути (или любой другой части поля ввода файла) по соображениям безопасности. При нормальном вводе файлов это невозможно. Может быть один из плагинов для загрузки на основе Flash, например swfbox, позволяет задавать каталог.

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