Ajax ile dosya yükleme işlemi
Öncelikle merhaba. Kolay gelsin.
Dün başladığım bir proje de tıkanıp kaldım. JQueryde ajax ı kullanarak dosya yüklemeye çalışıyorum fakat bütün formun datası giderken yalnızca <input type="file">
ın datası gitmiyor. koldarı aşağıda vereceğim. Yardımcı olursanız Sevinirim :) Şimdiden teşekkür ederim
<form class="form ajaxForm"
action="app/api.php"
enctype="multipart/form-data">
<input type="file"
name="seo_logo">
<input type="hidden"
name="seo_logo_yedek"
value="">
<button type="button">
Kaydet
</button>
</form>
$(".ajaxForm .saveBtn").on("click", async () =>{
let ajaxForm = $(".ajaxForm");
let data = ajaxForm.serialize();
/*
Eğer Burda async kullanmazsam Ck editor texarea ya veri işlemiyor.
*/
await CKEDITOR.instances['seo_copyright'].updateElement();
await $.ajax({
url: "app/api.php",
data: data,
method: "POST",
contentType: false,
processData: false,
success: function(result){
console.log(result);
if (result === "1"){
console.log("İşlem Başarılı").i
} else {
console.log("İşlem Başarısız");
}
}
});
return false;
});
if ($_FILES['seo_logo']['size'] > 0) {
$uploads_dir = "../upload/seo_logo";
@$tmp_name = $_FILES['seo_logo']['tmp_name'];
@$name = $_FILES['seo_logo']['name'];
$random = md5(rand(165498, 9458489));
$seo_logo = substr($uploads_dir, 3) . "/" . $random . $name;
@move_uploaded_file($tmp_name, "$uploads_dir/$random$name");
} else {
$seo_logo = $_POST['seo_logo_yedek'];
}
$seo_settings_save = $db->prepare("UPDATE seo SET
seo_logo=:seo_logo
WHERE seo_id=:seo_id");
$control = $seo_settings_save->execute(array(
"seo_logo" => $seo_logo,
"seo_id" => "0"
));
if ($control){
echo "1";
} else {
echo "0";
}
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
Bu şekilde post edebilirsin.
jQuery(document).on("submit",'form[name="ajaxPost"]',function() {
var $data = new FormData(this);
$.ajax({
url: url,
data: $data,
dataType:'json' ,
contentType: false,
processData: false,
type: "POST",
success: function(data) {
$('#status').html(data.message);
}
});
});