AJAX + JSON kullanarak dosya yüklemenin basit bir yolu var mı, merak ediyorsunuz. Evet, bunu yapmak mümkündür ve birkaç farklı yaklaşım vardır. En yaygın yöntemlerden biri, FormData nesnesini ve XMLHttpRequest'i (XHR) kullanmaktır:

HTML:

<input type="file" id="dosya">
<button onclick="yükleDosya()">Yükle</button>

JavaScript:

function yükleDosya() {
  var dosya = document.getElementById("dosya").files[0];
  var xhr = new XMLHttpRequest();

  xhr.open("POST", "yükleme_scripti.php");
  xhr.setRequestHeader("Content-Type", "multipart/form-data");

  xhr.onload = function() {
    if (xhr.status === 200) {
      // Başarıyla yüklendi
      console.log("Dosya başarıyla yüklendi!");
    } else {
      console.error("Dosya yüklenemedi.");
    }
  };

  var formVerisi = new FormData();
  formVerisi.append("dosya", dosya);

  xhr.send(formVerisi);
}

PHP (yükleme_scripti.php):

$dosyaYolu = "yüklenen_dosyalar/" . $_FILES["dosya"]["name"];
move_uploaded_file($_FILES["dosya"]["tmp_name"], $dosyaYolu);
echo "Dosya başarıyla yüklendi!";
Bu örnekte, HTML'de bir dosya girişi ve yükleme düğmesi bulunmaktadır. JavaScript'te, yükleDosya işlevi dosya girişinden seçilen dosyayı alır, bir XHR isteği oluşturur, FormData nesnesine ekler ve sunucuya gönderir.

PHP tarafında, $_FILES dizisi kullanılarak dosyanın adı ve geçici konumu alınır ve move_uploaded_file işleviyle hedef konuma taşınır.

Bu, AJAX + JSON kullanarak dosya yüklemenin temel bir örneğidir. Güvenlik ve hata kontrolü gibi ek hususlar da göz önünde bulundurulmalıdır. Ayrıca, AJAX çağrılarını yönetmeye yardımcı olabilecek jQuery veya Axios gibi kütüphaneler de kullanabilirsiniz.