Giriş yap
Ajax Resim Upload Sorunu

Formu bilgileri aşağıdaki gibi

ajax kullanmadan sorunsuz kayıt işlemi geçekleşiyor , sanırım sorun ajax da...
ajax ile gönderirsem veritabanına tüm bilgiler kaydoluyor ama resim yüklenmiyor ve veritabanına yolu kaydolmuyor.

Sorun ne olabilir

<form id="personel_ayarlari_ajax" action="javascript:void(0);" onSubmit="return false" method="POST" enctype="multipart/form-data">

burada diğer form bileşenleri var uzun olması diye eklemedim.

<div class="col-md-12">
	<div class="form-group">
		<label>Profil Resmi</label>
		<img src="<?php echo $personel['p_profil_resmi']; ?>" width="100px">
		<input type="file" class="form-control pb-5" id="file" name="file" >
		<input name="eskiresim" type="hidden" value="<?php echo $personel['p_profil_resmi']; ?>">
	</div>
</div>	

<button class="mt-2 btn btn-primary pull-right" name="personel_bilgileri_kaydet" id="personel_bilgileri_kaydet" type="submit" onclick="personel_ayarlari_ajax();">Bilgileri Kaydet</button>
</form>

Ajax kodlarım

<script type="text/javascript">
//sirket guncelle
function personel_ayarlari_ajax() {
var veriler = $('#personel_ayarlari_ajax').serialize();

$.ajax({
  type: "POST",
  url: "ajax/personel_bilgileri_guncelle.php",
  data: veriler,
  success: function (response){
    toastr.success('İşlem başarıyla sonuçlandı');
  },
  error: function (response) {
    toastr.error('Lütfen zorunlu alanları doldurunuz....');
  }
});

};
</script>

php kodlarım

<?php

require_once '../_fonksiyon.php';

if (isset($_POST))

{
	if(!empty($_POST["p_sifre"])){
		$p_sifre = sha1(md5($_POST["p_sifre"]));
	}else { $p_sifre =NULL;}
		

if($_FILES){
    /* Dosya Adını Düzeltme Fonksiyonu */
        // Yüklenen dosya adındaki türkçe karakterleri değiştirir
        function renamefile($filename) {
            $find = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-');
            $replace = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' ');
            $filename = strtolower(str_replace($find, $replace, $filename)); // str_replace() ile türkçe karakterleri değiştiriyoruz. strtolower() ile büyük harfleri küçük harfe dönüştürüyoruz.
            $filename = str_replace(' ', '-', $filename); // str_replace() fonksiyonu ile boşlukları - yapıyoruz.
            return $filename;
        }
    /* Dosya Adını Düzeltme Fonksiyonu */
    $uploadfolder = 'images'; // Dosyanın yükleneceği klasörü yolunu yazıyoruz.
    $file = $_FILES['file']; // $_FILES ile gelen verileri değişkene atıyoruz.
    // $formats = array("application/pdf", "application/doc", "application/docx", "application/xls", "application/xlsx"); // Dokümanlar için PDF, Word, Excel formatları
    $formats = array("image/pjpeg", "image/jpeg", "image/gif", "image/bmp", "image/x-png", "image/png"); // Resimler için Jpg, Gif, Bmp, Png formatları
    // $formats = array("video/mp4", "video/mpg", "video/mpeg", "video/mov", "video/avi", "video/flv", "video/wmv"); // Videolar için Mp4, Mpg, Mov, Avi, Flv, Wmv formatları
    $url_decode = urldecode($file['name']);
    $name = explode('/', $url_decode);
    $rand = time(); // Random bir değer atamak için burada zamanı alıyoruz.
    if (in_array($file['type'], $formats)) {
        // Yüklemek istenilen dosyanın izin verilen dosya formatlarına uygunluğunu kontrol ediyoruz.
        $upload_file = $uploadfolder.'/'.$rand.renamefile($name[count($name) - 1]);
        move_uploaded_file($file['tmp_name'], $upload_file);
        $filename = $rand.renamefile($name[count($name) - 1]);
    }
	$p_resim = $uploadfolder.'/'.$filename;
}
else 
{ $p_resim =$_POST['eskiresim']; }
  $personel_ekle=execute_query("UPDATE tbl_personeller SET
  	p_adi=?,
  	p_soyadi=?,
  	p_kimlik_no=?,
  	p_mail=?,
  	p_mobil=?,
  	p_sifre=?,
  	p_adres=?,
 	p_profil_resmi=?,
  	p_degistiren_id=?,
  	p_degistirme_tarihi=now()	
		 
  WHERE p_id=?",
    array(
		
        $_POST["p_adi"],
        $_POST["p_soyadi"],
        $_POST["p_kimlik_no"],
        $_POST["p_mail"],
        $_POST["p_mobil"],
        $p_sifre,
        $_POST["p_adres"],
      	$p_resim,
       	$_SESSION["p_id"],
		
       	$_SESSION["p_id"]
		
    ));

}else{
    echo 2;
}

?>

qplot
1 gün önce

bence oncelıkle verot class kullan sonra ben sana kodları buradan yazarım

arcface
19 saat önce

ajax yapına contentType: false, cache: false, processData:false dahil et tekrar dene

Nasıl akıllıca soru sorulur?
Daha hızlı ve kaliteli cevaplar almak için önce nasıl soru sorulacağını bilmeniz gerekir. Eğer bilmiyorsanız bu yazı serisini okuyun.

Cevap yaz