К основному контенту

Заметка по отправке файла на сервер HTML+Ajax+PHP

Появилась новая задача по загрузке файла на сервер через форму через ajax+PHP. Данную задачу я реализовал, но что бы потом при аналогичной задаче не искать в каком проекте я делал, решил оставить свои наброски здесь.

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;    }
}


Данный код описывать не буду, так как заметку сделал для себя, но если кто то попадет на данную страницу и воспользуется кодом, буду только рад.

Комментарии

Популярные сообщения из этого блога

Убрать обязательные поля при редактировании заказа в админке Opencart

Снова пишу для себя заметку, что бы не забыть где искать. Задача: Убрать обязательные поля  при редактировании заказа в админке Opencart. Что бы убрать в контроллере проверку на обязательные поля нужно перейти в catalog/controller/api/customer и найти нужный кусок кода проверки и закомментировать, например нам нужно убрать проверку Фамилии. Это у нас Last Name. Находим код if ((utf8_strlen(trim($this->request->post['lastname'])) < 1) || (utf8_strlen(trim($this->request->post['lastname'])) > 32)) { $json['error']['lastname'] = $this->language->get('error_lastname'); } и комментируем. После чего нужно сохранить и возможно обновить модификацию (если вы ставили какую то модификацию). Что бы убрать красную звездочку, то нужно зайти admin/view/template/sale/order_form.tpl и удалить класс " required " в том месте где не нужно указывать обязательность поля. Что касается 3 вкладки "Оплата"...

Создание истории поиска. часть 2 (админка)

Продолжения статьи  Создание истории поиска. часть 1 (сайт)                       Первым делом сделаем сразу ссылку для захода на страницу нашей истории поиска в админке. Для этого нужно в файле  admin / controller / common / menu   создать ссылку на контроллер.  Находим строчку  «$data['home'] = $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], 'SSL');»  и после нее добавляем  «$data['search_history'] = $this->url->link('extension/search_history', 'token=' .  $this->session->data['token'], 'SSL');». В данном случае мы объявляем переменную для тпловського файла для ссылки. Еще в этом файле нам нужно объявить языковую переменную, например, возьмем код «$data['text_search_history'] = $this->language->get('text_search_history');» и вставим после кода «$this->load->language('common/menu');». ...

Запросы SQL

Здесь я буду записывать запросы. которые мне были нужно в процессе работы на проектами. 1. Убрать пробелы в определенной ячейке -   UPDATE   `table`   SET   `field` =   REPLACE ( `field` , ' ' , '' )   WHERE   `field1`   =   'содержимое'