Выполнить действие после загрузки файлов с помощью PHP? - PullRequest
0 голосов
/ 06 января 2012

У меня есть страница со следующей структурой:

1. Text

2. Form with SUBMIT button that allows users to upload files

3. PHP code to handle the files

Я хотел бы завершить 2 (подождите, пока пользователь нажмет SUBMIT), прежде чем перейти к 3. Я также хотел бы сохранить активностьна той же странице ... прямо сейчас, если пользователь нажимает кнопку SUBMIT, он / она перенаправляется в скрипт upload.php.

Какой самый простой способ сделать это, учитывая, что я новичок в PHP?Спасибо за потраченное время.

Код ниже:

HTML (я бы хотел сохранить все на этой странице):

<html>
<body>

<form action="upload_file.php" method="post" enctype="multipart/form-data">
<br />
<label for="file">Upload Files:</label>
<br />
<br />
<input type="file" name="file1" id="file" /> 
<input type="file" name="file2" id="file" /> 
<input type="file" name="file3" id="file" /> 
<br />
<br />
<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>


 <?php




//$result = $storageClient->putBlob('testcontainer', 'example.txt', 'C:/example.txt');
// I'll be uploading each of the three uploaded files here
// Syntax: putBlob (ContainerName, NameInStorage, FileLocation)

?> 

Сценарий:

<?php
error_reporting(E_ALL);


for ($i=1; $i<4; $i++)
    {
    $file = "file" . $i;
    if (($_FILES[$file]["size"] < 20000))
      {
      if ($_FILES[$file]["error"] > 0)
        {
        echo "Return Code: " . $_FILES[$file]["error"] . "<br />";
        }
      else
        {
        echo "Upload: " . $_FILES[$file]["name"] . "<br />";
        echo "Type: " . $_FILES[$file]["type"] . "<br />";
        echo "Size: " . ($_FILES[$file]["size"] / 1024) . " Kb<br />";
        echo "Temp file: " . $_FILES[$file]["tmp_name"] . "<br />";


        $moved = move_uploaded_file($_FILES[$file]["tmp_name"], "C:/inetpub/wwwroot/PHP_Ramp/upload/" . $_FILES[$file]["name"]);

        if ($moved) {
            echo "Move: Success <br/>";
        }
        else {
            echo "Move Failed <br/>";
        }


          echo "Stored in: " . "C:/inetpub/wwwroot/PHP_Ramp/upload/" . $_FILES[$file]["name"];
          }
        }

    else
      {
      echo "Invalid file";
      }

}
?>

Ответы [ 2 ]

1 голос
/ 06 января 2012

1) в форме введите имя того же файла ...

2) Дайте имя для отправки кнопки lits скажи name = "submit"

3) На той же странице:

if(isset($_POST['submit']))
{
  write file handliig code here..
  all file processing code you were doing in that redirected php script do here..
}
1 голос
/ 06 января 2012

Вы не можете достичь этого, используя только PHP. Если вы хотите, чтобы процесс был на той же странице (без обновления), вам нужно использовать AJAX, который является javascript. Попробуйте прочитать раздел jQuery ajax.

И так как вы загружаете файл, вы не можете выполнить загрузку файла, используя чистый ajax (объект xmlhttprequest не поддерживает загрузку файла), поэтому вы можете искать плагины для этого или использовать скрытый IFRAME Ваша форма будет нацелена.

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