Я пытаюсь отправить данные формы в 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";
?>
Пожалуйста, дайте мне знать, что я упускаю или делаю неправильно.
примените код bewlo, он может вам помочь, и используйте <?php var_dump($_FILES); эхо "лл"; ?>
FormData подготавливает набор данных для отправки формы полный, включая уже все имена параметров, значения и т. д. Вы делаете эту структуру данных недействительной, пытаясь отправить ее «как» определенный параметр с именем ff. Вам нужно отправить этот объект FormData и ничего больше: data: formData






<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) { } Пожалуйста предлагать
я думаю, ты что-то упускаешь
Теперь я столкнулся с проблемой, указанной в этой ссылке: stackoverflow.com/questions/56576558/…
Попробуйте это, это работает для меня :)
Например
$.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);
это неправильный способ загрузки файла с помощью ajax