Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2019, 19:45
Аватар для finlolo
Аспирант
Отправить личное сообщение для finlolo Посмотреть профиль Найти все сообщения от finlolo
 
Регистрация: 12.08.2018
Сообщений: 61

Передача файла через Drop and Drag по ajax
Привет всем!

Мне нужно передать файл на загрузку через ajax запрос.
У меня возникает ошибка.
Вот так я получаю файл при перетаскивании его на поле

var file = event.dataTransfer.files[0];


Такой у меня заапрос:
jQuery.ajax({ // инициaлизируeм ajax зaпрoс
            type: 'POST', // oтпрaвляeм в POST фoрмaтe, мoжнo GET
            url: 'путь/upload.php', // путь дo oбрaбoтчикa, у нaс oн лeжит в тoй жe пaпкe
            dataType: 'json', 
            data: file, 
            success: function(data){ 
                if (data['error']) { 
                    dropZone.text('Произошла ошибка!');
                    dropZone.addClass('error');
                } else { 
                    dropZone.text('Загрузка завершена!');
                }
            }      
        });



Такой код php:

<?php
    if ($_POST) { // eсли пeрeдaн мaссив POST
        $path = ABSPATH.'wp-content/uploads/auctions/'; // директория для загрузки
        $ext = array_pop(explode('.',$_FILES['file']['name'])); // расширение
        $newimg = time().'.'.$ext; // новое имя с расширением
        $full_path = $path.$newimg; // полный путь с новым именем и расширением
        $full_pathbd = $_SERVER['SERVER_NAME'].'/wp-content/uploads/auctions/'.$newimg; 
        if(move_uploaded_file($_FILES['file']['tmp_name'], $full_path)){
            echo json_encode($full_pathbd); // вывoдим мaссив oтвeтa
            die(); // умирaeм
        } else {
            $json['error'] = 'Ошибка отправки';
        }
    } else { // eсли мaссив POST нe был пeрeдaн
        echo 'GET LOST!'; // высылaeм
    }
?>


Ошибка возникает в jQ Illegal invocation
Типа файла вот такой:
File {name: "Screenshot_4.png", lastModified: 1550586686519, lastModifiedDate: Tue Feb 19 2019 18:31:26 GMT+0400 (GMT+04:00), webkitRelativePath: "", size: 282584, …}
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2019, 21:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Можно тут прочесть о клиентской стороне вопроса и обратить внимание на new FormData().

Ajax можно и JQ использовать, но так как вы делаете, файлы передаваться не будут, нужно обязательно указывать два параметра ajax - contentType: false и processData: false

Что касается серверной стороны, то так файлы от клиента принимать никак нельзя, это опасно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Drag and drop c ajax mrkid AJAX и COMET 4 17.08.2015 14:21
ищу Drag & drop плагин для построения плана помещения Den Brown Элементы интерфейса 0 31.07.2015 19:23
Ajax & Javascript Drag n Drop для фотоальбома russel_fel Events/DOM/Window 2 18.12.2012 13:53
drag & drop , html 5 cyber Events/DOM/Window 1 30.06.2012 15:16
Загрузка файла с использованием drag and drop art_maestro Общие вопросы Javascript 2 01.08.2011 02:46