lostyazilim
tr.link

Php de yapmış olduğum upload fonksiyonu

7 Mesajlar 1.037 Okunma
acebozum
tr.link

WebDevelopers WebDevelopers Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 11.01.2018
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım Geliştirme Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** D**
  • Mesajlar 371
  • Beğeniler 30 / 55
  • Ticaret 14, (%86)
Arkadaşlar merhaba,

1 aylık php öğrenimim üzerine yapmış olduğum upload fonksiyonunu göstermek istedim sizce şuan ki deneyimlerime göre iyi mi gidiyorum yoksa yavaş mı ancak yapabildiğim buydu eksik yada hata gördüğünüz bir yeri var mı tecrübelerinizi söylerseniz mutlu olurum :)

Upload.php dosyamı bu şekilde yazdım


Dosya Seçin.









Fonksiyonları ise bu şekilde

function yukle($dosya, $boyutLimit = 1, $dosya_uzantilari = null)

{

$sonuc = [];

if($dosya['error'] == 4){
$sonuc['hata'] = "Lütfen Dosya Seçiniz";


} else{

if(is_uploaded_file($dosya['tmp_name'])){

$uzanti = explode('.', $dosya['name']);
$uzanti = $uzanti[1];

$gecerli_dosya_uzantilar = $dosya_uzantilari ? $dosya_uzantilari : [
'image/jpeg',
'image/png',
'image/gif'
];

$dosya_uzantisi = $dosya['type'];

$gecerli_dosya_boyutu = (1024 * 1024) * $boyutLimit ;

if(in_array($dosya_uzantisi, $gecerli_dosya_uzantilar)){

if($gecerli_dosya_boyutu >= $dosya['size']){

$ad = uniqid();

$yukle = move_uploaded_file($dosya['tmp_name'], 'upload/' . $ad .'.'. $uzanti);

if($yukle){
$sonuc['dosya'] = 'upload/'.$ad.'.'.$uzanti;


}else{

$sonuc['hata'] = "Bir sorun oluştu dosya yüklenemedi";
}

}else{
$sonuc['hata'] = "Yükleneyeceğiniz dosya en fazla 3MB olabilir";
}

}else{
$sonuc['hata'] = "Dosya sadece jpg,png,gif formatında yüklenebilir";
}


}else{
$sonuc['hata'] = "Dosya Yüklenirken bir sorun oluştu";
}

}
return $sonuc;
}

$sonuc = yukle($_FILES['dosya']);
if(isset($sonuc['hata'])){
echo $sonuc['hata'];
}else{

echo 'Dosyayı Görmek için tıklayınız';
}


Toplu Yüklemek için fonksiyon ise





function multi_upload_file($dosyalar)
{
$sonuc = [];
// hataları kontrol et ..
foreach($dosyalar['error'] as $index => $error ){
if($error == 4 )
{
$sonuc['hata'] = 'Lütfen Dosya Seçin';
}elseif($error !=0){
$sonuc['hata'][] = 'Hatalı Dosya Yüklendi'. $dosyalar['name'][$index];
}
}
// hata yoksa işleme devam et
if(!isset($sonuc['hata'])){

//dosya uzantılarını kontrol et
$gecerli_dosya_uzantilari = [
'image/jpeg',
'image/png',
'image/gif'
];

foreach($dosyalar['type'] as $index => $type){
if(!in_array($type, $gecerli_dosya_uzantilari)){
$sonuc['hata'][] = 'Hatalı Dosya Uzantısı Girildi'. $dosyalar['name'][$index];
}
}

if(!isset($sonuc['hata']))
{
// boyut kontrol etme

$maxBoyut = (1024 * 1024);

foreach($dosyalar['size'] as $index => $size){
if($size > $maxBoyut){
$sonuc['hata'][] = 'Dosya Boyutu Belirlenenden Daha Büyük'.$dosyalar['name'][$index];
}
}

if(!isset($sonuc['hata'])){
// dosyaları yüklemek.
foreach($dosyalar['tmp_name'] as $index => $tmp_name){
$dosyaAdi = $dosyalar['name'][$index];
$yukle = move_uploaded_file($tmp_name, 'upload/'. $dosyaAdi );
if($yukle){
$sonuc['dosya'][] = 'upload/'. $dosyaAdi;
}else{
$sonuc['hata'][] = 'Dosya Yüklenemedi'. $dosyaAdi;
}
}
}
}
}
return $sonuc;

}

$sonuc = multi_upload_file($_FILES['dosya']);

if(isset($sonuc['dosya'])){

print_r($sonuc['dosya']);

if(isset($sonuc['hata'])){
print_r($sonuc['hata']);
}

}elseif(isset($sonuc['hata'])){
if(is_array($sonuc['hata'])){
echo implode('
', $sonuc['hata']);
}else
{
echo $sonuc['hata'];
}
}



?>
 

 

elektronikssl
webimgo

bitirimci bitirimci WM Aracı Kimlik Onayı
  • Üyelik 20.05.2013
  • Yaş/Cinsiyet 41 / E
  • Meslek Serbest
  • Konum İstanbul Avrupa
  • Ad Soyad M** Y**
  • Mesajlar 1170
  • Beğeniler 216 / 214
  • Ticaret 0, (%0)
Bende php çalışıyorum bu veritabanına yazmak için değil sanırım sadece yüklemek için mi
 

 

WebDevelopers WebDevelopers Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 11.01.2018
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım Geliştirme Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** D**
  • Mesajlar 371
  • Beğeniler 30 / 55
  • Ticaret 14, (%86)
bitirimci hayır hocam bu veritabanına yazmak için değil ftp de bulunan upload klasörünün içine resimleri ekleyip ekran da göstermeye yaramaktadır
bitirimci

kişi bu mesajı beğendi.

Yeninesil44 Yeninesil44 Kullanıcı
  • Üyelik 28.02.2015
  • Yaş/Cinsiyet 34 / E
  • Meslek web programlama
  • Konum Malatya
  • Ad Soyad O** D**
  • Mesajlar 1033
  • Beğeniler 282 / 281
  • Ticaret 18, (%100)
Kodlarda gereksiz evham var ve daha işlevsel olabilir
1 ayda bişe olmaz seneye güncellersiniz konuyu :)
 

 

MultiAnaliz.com
wmaraci
wmaraci

WebDevelopers WebDevelopers Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 11.01.2018
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım Geliştirme Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** D**
  • Mesajlar 371
  • Beğeniler 30 / 55
  • Ticaret 14, (%86)
Yeninesil44 mesela hocam nerede hata buldunuz söylerseniz ona göre kendimi geliştirebilirim :)
 

 

Yeninesil44 Yeninesil44 Kullanıcı
  • Üyelik 28.02.2015
  • Yaş/Cinsiyet 34 / E
  • Meslek web programlama
  • Konum Malatya
  • Ad Soyad O** D**
  • Mesajlar 1033
  • Beğeniler 282 / 281
  • Ticaret 18, (%100)
çok basit olmuş, özelleştirilebilir değil, örnek olması için verot kütüphanesini inceleyebilirsiniz. Uzun uzadıya türkçe isimlerde bence kodları okunaksız yapıyor
WebDevelopers

kişi bu mesajı beğendi.

MultiAnaliz.com

WebDevelopers WebDevelopers Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 11.01.2018
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım Geliştirme Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** D**
  • Mesajlar 371
  • Beğeniler 30 / 55
  • Ticaret 14, (%86)
Yeninesil44 bakacağım hocam teşekkür ederim
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al