Появилась новая задача по загрузке файла на сервер через форму через ajax+PHP. Данную задачу я реализовал, но что бы потом при аналогичной задаче не искать в каком проекте я делал, решил оставить свои наброски здесь.
1. Форма
1. Форма
<form id="upload" enctype="multipart/form-data"> <div class="form-group"> <input type="file" name="xls" id="xls"> </div> <input type="submit" class="btn btn-default"> </form>
2. Ajax
<script type="text/javascript"> $(document).ready(function () { $('#upload').on('submit',function(e) { e.preventDefault(); var formData = new FormData(this); $.ajax({ type:'POST', // Тип запроса url: '/modules/availability/views/templates/admin/send_file.php', // Скрипт обработчика data: formData, // Данные которые мы передаем cache:false, // В запросах POST отключено по умолчанию, но перестрахуемся contentType: false, // Тип кодирования данных мы задали в форме, это отключим processData: false, // Отключаем, так как передаем файл success:function(data){ console.log('success', data); }, error:function(data){ //console.log(data); } }) }) }); </script>4. PHP скрипт<?php // Проверяем установлен ли массив файлов и массив с переданными даннымиif(isset($_FILES)) { //Переданный массив сохраняем в переменной $file = $_FILES['xls']; $uploaddir = $_SERVER['DOCUMENT_ROOT'] . '/upload/file/'; if (move_uploaded_file($file['tmp_name'], $uploaddir . basename('import.xlsx'))) { $files[] = realpath($uploaddir . $file['name']); } else { $error = true; } }Данный код описывать не буду, так как заметку сделал для себя, но если кто то попадет на данную страницу и воспользуется кодом, буду только рад.
Комментарии
Отправить комментарий