Задача: сохранить файл на сервер без обновления страницы. Т.е. при помощи ajax
Решение:
Клиентская часть:
<h1>Отправка сообщения в техподдержку</h1> <div id="snd"> <form id="data" method="post" enctype="multipart/form-data"> <textarea id="tehtxt" name="tehtxt" class="form-control" rows="3" placeholder="Сообщение для техподдержки"></textarea> <br/> <input name="image" type="file" /> <br/> <button class="btn btn-success" id="buttonsendteh">Отправить сообщение</button> </form> </div> <br/> <script> $("form#data").submit(function(e) { e.preventDefault(); var formData = new FormData(this); $("#buttonsendteh").hide(); $.ajax({ url: "index.php?route=/controller/server/sendtoteh.php", type: 'POST', data: formData, success: function (data) { $("#snd").html(data); ListSbssMessages(); $("#buttonsendteh").show(); }, cache: false, contentType: false, processData: false }); }); </script>
Серверная часть:
$tehtxt=mysqli_real_escape_string($sqlcn->idsqlconnection,$_POST["tehtxt"]); $prc=""; if (isset($_FILES['image'])==true){ $orig_file = $_FILES['image']['name']; $userfile_name = GetRandomId(8) . '.' . pathinfo($orig_file, PATHINFO_EXTENSION); $src = $_FILES['image']['tmp_name']; $res = move_uploaded_file($src, WUO_ROOT."/files/".$userfile_name); $prc="Прикрепленный файл: $userfile_name"; };