Форма Ajax отправляет нулевые данные в php

Я пытаюсь отправить данные формы в PHP с помощью AJAX, но при сбросе данных на странице PHP он возвращает нулевые значения.

На самом деле, мне нужна программа, в которой я могу загрузить изображение, а затем обрезать его во всплывающем окне, а затем сохранить обрезанное изображение в базе данных.

Мой код приведен ниже:

$('#fileinput').on('change', function() {
  var formD = new FormData();
  var file = $('#fileinput')[0].files[0];
  // var nfile = file.serializeArray();
  // console.info(file);
  formD.append('file', file);
  formD.append("clientID", 2993);
  console.info(formD);

  $.ajax({
    url: 'croped.php',
    type: 'POST',
    data: {
      'ff': formD
    },
    processData: false,
    contentType: true,
    // dataType: 'json',
    success: function(data) {
      console.info(data);
    }
  });
});
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action = "" method = "POST" enctype = "multipart/form-data">
  <input type = "file" name = "image" id = "fileinput" />
  <input type = "submit" name = "upld" id = "upldbtn" />
</form>

обрезанный.php

<?php
var_dump($_POST);
echo "ll";
?>

Пожалуйста, дайте мне знать, что я упускаю или делаю неправильно.

это неправильный способ загрузки файла с помощью ajax

Kumar Praveen 11.06.2019 14:34

примените код bewlo, он может вам помочь, и используйте <?php var_dump($_FILES); эхо "лл"; ?>

Kumar Praveen 11.06.2019 14:39

FormData подготавливает набор данных для отправки формы полный, включая уже все имена параметров, значения и т. д. Вы делаете эту структуру данных недействительной, пытаясь отправить ее «как» определенный параметр с именем ff. Вам нужно отправить этот объект FormData и ничего больше: data: formData

04FS 11.06.2019 14:44
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
827
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

  <form action = "" method = "POST" enctype = "multipart/form-data" 
        id = "formdata">
        <input type = "file" name = "image" id = "fileinput" />
        <input type = "submit" name = "upld" id = "upldbtn" />
   </form>

$("#formdata").submit(function(e) {

    e.preventDefault();    
    var formData = new FormData(this);

    $.ajax({
    url: window.location.pathname,
    type: 'POST',
    data: formData,
    success: function (data) {
        alert(data)
    },
    cache: false,
    contentType: false,
    processData: false
});
});

Нет, это тоже не работает для меня. это дает этот результат в formData: FormData {}__proto__: FormDataappend: ƒ append()delete: ƒ delete()entries: ƒ entry()forEach: ƒ forEach()get: ƒ ()getAll: ƒ getAll()has: ƒ has()keys: ƒ keys()arguments: (...)caller: (...)length: 0name: "keys"прото: ƒ ()[[Scopes]]: Scopes[0]set: ƒ ( )values: ƒ values() конструктор: ƒ FormData()Symbol(Symbol.iterator): ƒ записи()Symbol(Symbol.toStringTag): «FormData»прото: Object И на странице php : array(0) { } Пожалуйста предлагать

Charanjeet Singh 13.06.2019 06:19

я думаю, ты что-то упускаешь

Kumar Praveen 13.06.2019 12:42

Теперь я столкнулся с проблемой, указанной в этой ссылке: stackoverflow.com/questions/56576558/…

Charanjeet Singh 13.06.2019 12:57
Ответ принят как подходящий

Попробуйте это, это работает для меня :)

  1. тип содержимого: ложь,
  2. данные: форма D,

Например

  $.ajax({
    url: "croped.php",
    type: "POST",
    data: formD,
    processData: false,
    contentType: false,
    // dataType: 'json',
    success: function (data) {
      console.info(data);
    },
  });

Для php-кода

<?php

echo "<pre>";
print_r($_FILES);

Другие вопросы по теме