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="nojavascript...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;
}
?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!