Форма загрузки файла, которая доставляет переменные в основной HTML - PullRequest
1 голос
/ 29 октября 2011

ИЗМЕНЕНО для уточнения вопроса.

Где я хочу получить:

  1. Форма загрузки файла внутри index.html. (готово)
  2. Форма отправляется в файл PHP. (сделано)
  3. Файл PHP перемещает файл в нужное место. (готово)
  4. index.html перезагружен, и PHP завершен.(сделано)
  5. index.html получает местоположение загруженного файла из PHP, чтобы использовать его позже. (отменено)

Я не знаю, как я передаю параметры из PHP обратно в index.html, или проблема в том, что я не понимаю, как работают PHP и HTMLобмен информацией.

Итак, вопрос в том, можно ли написать такую ​​функциональность в Ajax, чтобы мне не нужно было "выходить" из моего index.html.

У меня естьэта форма внутри моего html:

<form method="post" enctype="multipart/form-data" action="uploader.php">
<input type="file" name="uploadedfile"/>
<input type="submit" name="submit" class="button" value="Submit"></button>
</form>

И php, который он вызывает, выглядит следующим образом:

<?php
$target_path = "uploads/";
$target_path = $target_path . ( $_FILES["uploadedfile"]["name"]);
if(move_uploaded_file($_FILES["uploadedfile"]["tmp_name"], $target_path)) {
echo "Success!"
} else{
echo "There was an error uploading the file, please try again!";
}
header('Location: http://localhost/index.html');
exit();
?>

После нажатия кнопки submit файл правильно загружается на сервер.

1 Ответ

0 голосов
/ 30 октября 2011

Вы можете изменить свой файл index.html на файл php, чтобы он мог иметь некоторый встроенный код PHP, а затем сделать что-то вроде следующего.

index.php

<form method="post" enctype="multipart/form-data" action="uploader.php">
<input type="file" name="uploadedfile"/>
<input type="submit" name="submit" class="button" value="Submit"></button>
</form>

<?php
if($_POST['target']){
    //Do stuff with the target
}
?>

uploader.php

<?php
$target_path = "uploads/";
$target_path = $target_path . ( $_FILES["uploadedfile"]["name"]);
if(move_uploaded_file($_FILES["uploadedfile"]["tmp_name"], $target_path)) {
echo "Success!"
} else{
echo "There was an error uploading the file, please try again!";
}

//The following code POSTs data to index.php
$params = array('http' => array(
          'method' => 'POST',
          'content' => array('target' => $target_path)
        ));
$ctx = stream_context_create($params);
$fp = @fopen('index.php', 'rb', false, $ctx);
if (!$fp) {
    throw new Exception("Problem with index.php, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
    throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
?>

Надеюсь, это даст вам некоторые идеи.

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