JQuery Ajax Fonksiyonu ile PHP'ye Dosya Göndermek

Kodla Büyü

yazilimuzmani

Site Gezgini
Mesajlar
60
Siteme giren kullanıcıların üye olmaları için kayıt ol linki yerleştirdim ve kayıt ol linkine tıklanınca dialog fonksiyonu ile ekrana kayıt olmak için gerekli nesneleri yansıttım( Email adresiniz, Şifreniz vs. ). Ben istiyorum ki kullanıcı kayıt ol ekranında birde html'in input file nesnesi bulunsun ve kullanıcı profil resminide seçip kayıt olsun. Kullanıcının kayıt olması işini jquery'nin ajax fonksiyonu ile yaptım.

Tek sorunum kullanıcının seçtiği dosyayı jquery'nin ajax() fonksiyonu ile php ye yollamak ve onu servera kaydetmek bunu nasıl yaparım?
 
hocam bildiğim kadarı ile AJAX file upload yok. onun yerine gizli bir iframe yardımı ile yükleme yapılıyor.
IFRAME içerisindeki sayfada dosya yüklemesi yapılınca
Kod:
parent.formum.resim1.src=dosyayolu;
gibi bir kod ile de yüklenen dosyanın adresini ana frame'e göndermek gerekiyor. Bir ara bende uğraşmıştım ama AJAX'a en yakın çözüm bu ve benzerleri oluyor. Kullandığım dosyaları bulursam buraya eklerim hocam.
 
Hocam hani bir şeyler yapmaya çalışıp hatalarısatırlar hakkında fikir istesen daha fazla yanıt gelecektir fakat bu durumda olayın tamamını nasıl yaparım demişsin. Buda sorununuzla ilgilenenlerin sayısı bir hayli azlatacaktır. jquery nin resmi dökümantoasyonunda işinize yarayacak örnekler vardır. Daha önceleri bende yapmıştım biraz araştırmanız vakit ayırmanız gerekecektir.

halilturkoglu nunda upload olmaz ifadesini düzeltmek istiyorum upload yapa bilirsiniz normal yolla yapılanların aynısını rahatlıkla yaparsınız ister GET ister POST yönetmelerini tercih ede bilirsiniz.

size tavsiyem file upload olayını ikinci verisyonda yapın ilk önce basit üyelik formunu yeni bir sayfada sitenizden ayrı olarak deneyin . sonra başarırsanız bunu sitenize entegre edersiniz. problemi birazda küçük paraçalara ayırarak çözmeye çalışın.
Daha önce jquery nin ajax fonsiyonlarını kullanmadıysanız kesinlikle örnekleri adım adım bizzat deneyerek ilerleyin. direk çözüme kilitlenmezi sizi yoracaktır.

kolay gelsin
 
Hocam ajax fonksiyonunu birçok kez kullandım zaten üye kayıt işleminde kullanıcı ajax ile sorunsuz kayıt olabiliyor sadece tek sorunum kullanıcının resim seçmesi ve bunu servera göndermek. Bunu sadece jquery'nin ajax fonksiyonu ile yapmak istiyorum. Bu konuyu baya bir araştırdım fakat hazır eklenti kullanmak istemiyorum. Ayrıca JQuery ile input file 'nin value değerini alınca bana sadece dosyanın ismini veriyor(resim.png) tam yolu vermiyor(C:\Documents and Settings\user\Belgelerim\Resimler\resim.png). Şöyle düşündüm belki tam yolu alırsam, ajax ile veriyi gönderip servera yükleyebilirim diye.
 
yazilimuzmani' Alıntı:
Hocam ajax fonksiyonunu birçok kez kullandım zaten üye kayıt işleminde kullanıcı ajax ile sorunsuz kayıt olabiliyor sadece tek sorunum kullanıcının resim seçmesi ve bunu servera göndermek. Bunu sadece jquery'nin ajax fonksiyonu ile yapmak istiyorum. Bu konuyu baya bir araştırdım fakat hazır eklenti kullanmak istemiyorum. Ayrıca JQuery ile input file 'nin value değerini alınca bana sadece dosyanın ismini veriyor(resim.png) tam yolu vermiyor(C:\Documents and Settings\user\Belgelerim\Resimler\resim.png). Şöyle düşündüm belki tam yolu alırsam, ajax ile veriyi gönderip servera yükleyebilirim diye.







burayı incele
http://www.w3schools.com/php/php_file_upload.asp

gelen datayı move_uploaded_file fonsyionu ile serverde yazma izni verdiğin bir dizene kopyala


Ayrıca sen jquery nin ajax fonsiyonu kullandığından eminmisin ?
http://api.jquery.com/jQuery.ajax/


eğer kullanmuyorsan jquery kullanmanın pek bir faydası yok.
bu sonuçları inceleyiniz
https://www.google.com.tr/search?q=jque ... =firefox-a
 
Hocam isterseniz bir kodlara bakın bu kodlarda hata yok ben sadece data kısmına üyenin seçtiği resmin tam urlsini alıp servera gönderip, move_uploaded_file fonsyionu ile ilgili dosyaya resmi yerleştirmeyi düşünüyorum.

Kod:
$(".lnkUyeKayitOl").click(function()
				{
					$("#dvUyeKayit").dialog({
						title:'Üye Kayıt Bölümü',
						minWidth:550,
						buttons:{
							'Kayıt Ol':function()
							{
								$.ajax({
									type:'POST',
									url:'uyeKayit.php',
									data: {
											'ad':$('#uyeKayit_txtAd').val(),
											'soyad':$('#uyeKayit_txtSoyad').val(),
											'email':$('#uyeKayit_txtEmail').val(),
											'sifre':$('#uyeKayit_txtSifre').val(),
											'sifreTekrar':$('#uyeKayit_txtSifreTekrar').val(),
											'il':$('#uyeKayit_selectil').val(),
											'adres':$('uyeKayit_txtAdres').val()
										  },
									success:function(gelenMesaj)
									{
										alert(gelenMesaj);
									}
								});
							},
							'İptal':function()
							{
								$('#dvUyeKayit').dialog('close');
							}
						}
					})
				});
 
data içinde serialize fonksiyonunu kullanarak o kısmı tek satıra indirebilirsin.

şöyle bir mantık kurulabilir uye resmi için:

data kısmına --> 'resim':$('uyeKayit_txtRsm').val() satırı eklenip seçilen resmin yolunu resim değişkenine atanır.


sonra uyeKayit.php dosyasında resim yukleme fonksiyonu önce çalıştırılıp resim server'da istenilen klasöre gönderilir. Yükleme sonucunda dosya bilgilerinden istenen bilgi multipart formun içine gönderilerek diğerleriyle birlikte db' içinde ilgili alanlara kayıt edilir.
 
İşte sorunda orada çıkıyor hocam.
<input type='file' id='uyeKayit_txtRsm' />
$('#uyeKayit_txtRsm').val() diye yazınca sadece dosya adını veriyor(resim.png gibi) dosyanın tam yolunu vermiyor.
 
alpaygunes' Alıntı:
halilturkoglu nunda upload olmaz ifadesini düzeltmek istiyorum upload yapa bilirsiniz normal yolla yapılanların aynısını rahatlıkla yaparsınız ister GET ister POST yönetmelerini tercih ede bilirsiniz.

Daha önce jquery nin ajax fonsiyonlarını kullanmadıysanız kesinlikle örnekleri adım adım bizzat deneyerek ilerleyin. direk çözüme kilitlenmezi sizi yoracaktır.

kolay gelsin

hocam

bende bu konuya çok takıldım.
resmi dökümanlarda maalesef kaynaklar İngilizce :roll:
benim anlayarak uyguladığım örneğin kodlari
<input type="button" value="Giriş" onclick="ajfonk()" />
function ajfonk() {
kullaniciadi = $('input[name="kullaniciadi"]').val();
sifre = $('input[name="sifre"]').val();
/*
şu bölümde
<input type="file" name="resimyolu"/>
*/
$.post('kontrol.php', {kulllaniciadi: kullaniciadi,sifre:sifre}, function (cevap) {
$('.sonucdivi').html(cevap);
});
}
hocam burasıda kontrol.php
#burada herhangi bir sıkıntı yok şimdilik hamd olsun
ama benim esas istediğim şu formdaki renkli bölümü ajax ile nasıl okuyup değişkene atarım.
(burada esas sorun sanırım form submit edilmediğinden resim veya resimler geçici olarak herhangi bir yere yüklenmiyor.
e o zaman ajaxın formu submit etmek gibi bir durumu varmı?
yada seçtiğimiz resim yada resimlerin esas kaynaklarını nasıl okutabilirim?
okutayım ki kontrol php de form submit işlemini yapayım)
 
BBNET
Geri
Üst