Как сделать кнопку выбора и загрузки файла одним кликом на ajax, без перезагрузки сайта?

183
24 апреля 2018, 01:39

Вот небольшой пример кода, где две кнопки: "Выбрать файл" и "Загрузить". После загрузки файла сайт перезагружается.

Как правильно реализовать кнопку выбора и загрузки файла одним кликом в ajax, что бы при этом сайт не перезагружался, при загрузке файла? Заранее благодарен за помощь.

  <div id="block_1" <? if(isset($_POST['send'])){?>style="display:block"<?}?>>
  <div></div>
  <div id="block_2">

    <?php
    if (isset($_POST['send'])) {
      $dir = './image';
      $f = scandir($dir);
      foreach ($f as $file){
        if(preg_match('/\.(jpg)/', $file)){


          $time_file = date("U", filectime($file));
          $time = date('U');
          $time_match = $time - $time_file;
          $delete_time = 1 * 60 * 24;
      //echo " (".$time_match."сек ) ";
          if ($time_match > $delete_time) {
            unlink($file);
        //echo "Файл удалён";
          }
      //echo "<br />";


        }
      }

      $new_name = md5(time().rand(0, 500)).'.jpg';
      setcookie('url_door', $new_name, time()+3600, '/');
      $_COOKIE['url_door'] = $new_name;
  ini_set('upload_max_filesize', '6M'); //ограничение в 6 мб
  if ($_SERVER['REQUEST_METHOD'] == "POST" ) {
    if ($_FILES['inputfile']['error'] == UPLOAD_ERR_OK && ($_FILES['inputfile']['type'] == 'image/jpeg' || $_FILES['inputfile']['type'] == 'image/png' || $_FILES['inputfile']['type'] == 'image/gif')) { 


  $destiation_dir = $_SERVER['DOCUMENT_ROOT'].'/image' . $new_name; // директория для размещения файла
  if (move_uploaded_file($_FILES['inputfile']['tmp_name'], $destiation_dir)) { //перемещение в желаемую директорию
  //Файл загружен //оповещаем пользователя об успешной загрузке файла
  } else {
  //Файл не загружен
  }
} else {
  switch ($_FILES['inputfile']['error']) {
    case UPLOAD_ERR_FORM_SIZE:
    case UPLOAD_ERR_INI_SIZE:
  //Файл превышает ограничение
    brake;
    case UPLOAD_ERR_NO_FILE:
  //Файл не выбран
    break;
    default:
  //Что-то пошло не так!
  }
 }
}
}
if(isset($_COOKIE['url_door'])){                                 
  $cookie_file = $_COOKIE['url_door'];                                      
} 
?>
<?
if(isset($_COOKIE['url_door'])){
$cookie_file = $_COOKIE['url_door'];
} else {
$background_image = "/source/background_img/background_img.jpg";
}
?>
<div class="block" style="background: url('<? echo $background_image ?>')0% 100%;background-repeat: no-repeat; margin-top: 16px; margin-left: -20px; width: 890px; height: 454px;">
<p>
<input style="display:none;" type="checkbox" checked="1" id="drawSkeleton"></input>
<label style="display:none;" for="drawSkeleton">Draw control points.</label>
</p>
</div>
<div id="download_form">
<form method="post" enctype="multipart/form-data" class="form_send_file">
<div class="fileform">
<input style="z-index: -1;" type="file" id="inputfile" name="inputfile" value="Выбрать файл">
<input type="submit" id="input_button" value="Загрузить" name="send">
</div>
</form>
</div>
</div>
</div>
READ ALSO
В чем смысл миграций

В чем смысл миграций

Здравствуйте!

176
Генератор уникальных значений php

Генератор уникальных значений php

Есть массив с датами

185
PHP Стандарты PSR

PHP Стандарты PSR

Уже несколько раз прочитал стандарты PSR для PHP, а именно PSR-0, PSR-1, PSR-2

191