Как запросить входной файл браузера у пользователя в Drupal 7 - PullRequest
0 голосов
/ 31 августа 2010

Привет, мне нужна помощь с этим. Я создал сценарий php, который я запускаю из копирования вставить в узел как код php. Мне нужен путь к файлу для обработки, как будто я использую '\ birds \ birds.xml'. Я не хочу включать путь к файлу вместо этого, я думаю, как создать простую маленькую форму с помощью кнопки обзора и выбора файла, чем отправить с помощью кнопки отправки. Сохраните путь к файлу в переменной.

1 Ответ

1 голос
/ 31 августа 2010

Насколько я понял кнопка просмотра предназначена для клиентской части (веб-браузер)


Кнопка просмотра на стороне клиента

Есть 2 части:

  1. Форма загрузки HTML
  2. скрипт обработки PHP

HTML [форма]

<form enctype="multipart/form-data" action="submit-script.php" method="POST">
    Choose a file to upload: <input name="uploadedfile" type="file" />
    <input type="submit" value="Upload File" />
</form>

PHP [submit-script.php]

$fileName = $_FILES['uploadedfile']['name'];
$target_path = "uploads/";
$target_path = $target_path . basename($fileName); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). " uploaded";
} else{
    echo "Unable to upload!";
}

Кнопка просмотра на стороне сервера

Однако, если вы хотите нажать кнопку обзора и просмотреть сервер, вам придется реализовать кнопку обзора самостоятельно с помощью ajax или сделать процесс многошаговым.

Ajax-Way

  1. При щелчке по кнопке открывается модальное окно с просмотром каталога
  2. В сети существует множество сценариев просмотра каталогов с открытым исходным кодом. Вот несколько примеров: простой серверный файловый браузер , fileNice - причудливое решение ...
  3. Как только вы нажмете OK в модальном окне, перед закрытием окна установите скрытый ввод для родительского элемента для выбранного файла (используя javascript). Например. window.parent.selectedFile.value = "выбранный файл"
  4. После сохранения в основной форме. Захватите «selectedFile» из POST и сделайте то, что вам нужно.

Путь без Аякса

Для этого вам понадобится несколько форм (на разных страницах). Первая форма будет иметь файловый браузер (см. Шаг 2 в Ajax-Way), сохранять выбранный файл в скрытых полях. После передачи во 2-ю форму установите значение для других скрытых полей ... запросите дополнительную информацию (если необходимо, если нет, вы можете пропустить 2-ю форму). После отправки делайте то, что вам нужно ...

...