Javascript.RU

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

Как передать файлы через axios ?
Есть поля класса vseimage имеющие тип file. При нажатии на кнопку saveresylt данные из них должны собираться и передаваться в файл FotoAdress.php для обработки, по итогам которой они будут выведены в поле workerzone. jQuery использовать не могу по техническим причинам, по этому для работы с ajax пользуюсь фрэймворком axios.

function Images() {
var fd = new FormData;
let  imageman3=document.querySelector(".imageman3");
let  vseimage=document.querySelectorAll(".vseimage");
for (let k=0;k<vseimage.length;k++){
if (vseimage[k].value!=""){fd.append('img'+k,vseimage[k].getAttribute("files")[0]);}
}
axios.post('/FotoAdress.php', {
                                            data:fd,
                                            processData: false,
                                            contentType: false,
                                    })
                                        .then(function (response) {
 let workerzone=document.querySelector(".workerzone");
     workerzone.innerHTML=response["data"];
                                        })
                                        .catch(function (error) {
                                            alert("eroor");
                                        });
                                    }
                                    let saveresylt=document.querySelector(".saveresylt");
saveresylt.onclick=Images;


Код файла FotoAdress.php
$_FILES = json_decode(file_get_contents('php://input'), true);
var_dump($_FILES);


Код не работает. Кто-нибудь знает, в чем здесь проблема ?
Ответить с цитированием
  #2 (permalink)  
Старый 11.11.2019, 09:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

'img'+k - это зачем? Это getAttribute("files")[0] и json_decode(file_get_contents('php://input') - что такое?
Ответить с цитированием
  #3 (permalink)  
Старый 12.11.2019, 06:52
Аспирант
Отправить личное сообщение для Alehana Посмотреть профиль Найти все сообщения от Alehana
 
Регистрация: 22.01.2019
Сообщений: 61

'img'+k - название файла,в котром передается изображение (например $_FILES["img1"]);
getAttribute("files")[0] - данные файла,которые потом будет выводить var_dump. (array(5) { ["name"]=> string(15) "_gQeUnHFsbo.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(14) "/tmp/phpWrlJsm" ["error"]=> int(0) ["size"]=> int(122930) })

json_decode(file_get_contents('php://input') - перевод данных из кодировки JSON.
Ответить с цитированием
  #4 (permalink)  
Старый 12.11.2019, 07:40
Аспирант
Отправить личное сообщение для Alehana Посмотреть профиль Найти все сообщения от Alehana
 
Регистрация: 22.01.2019
Сообщений: 61

Нашел рабочую схему передачи
var fd = new FormData;
let  imageman3=document.querySelector(".imageman3");
 let  vseimage=document.querySelectorAll(".vseimage");
for (let bi=0;bi<vseimage.length;bi++){
                                            if (vseimage[bi].value!=""){  fd.append('file'+bi, vseimage[bi].files[0])}
                                        }

                               
                                        workerzone.innerHTML="<span>Ждите</span><span class='grign1'>"+girigo+"</span>";console.log(girigo);
                                            axios.post('/FotoAdress.php', fd, {
                                                headers: {
                                                    'Content-Type': 'multipart/form-data'
                                                }
                                            })
                                                .then(response => {
                                                    console.log(response);
                                                    let workerzone=document.querySelector(".workerzone");
                                                    workerzone.innerHTML=response["data"];
                                                })
                                                .catch(error => {
                                                    alert("eror")
                                                })
Ответить с цитированием
  #5 (permalink)  
Старый 12.11.2019, 11:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Alehana
'img'+k - название файла,в котром передается изображение (например $_FILES["img1"]);
Я поэтому и спрашиваю зачем? Ну получив массив $_FILES выведите вы его не дам, а структуру, может тогда понятно станет, что это лишнее и никчемное.

Сообщение от Alehana
json_decode(file_get_contents('php://input') - перевод данных из кодировки JSON
Что за чушь? 'multipart/form-data' - это смешанный контент включающий бинарные данные.

А у вас поля file с одиночным выбором?

Последний раз редактировалось laimas, 12.11.2019 в 11:46.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать обработку динамически созданной формы через ajax? Wimko AJAX и COMET 4 08.10.2019 16:37
Как загружать изображения через .readAsArrayBuffer NiOl Элементы интерфейса 2 18.06.2019 23:17
JS&PHP: можно ли передать значение переменной через XMLHttpRequest? -_Gleb_- AJAX и COMET 1 14.07.2016 08:45
Как передать дополнительный параметр через AJAX? allanmiln AJAX и COMET 2 17.11.2013 02:21
bind: как передать функции указатель на объект trial jQuery 4 25.05.2010 01:35