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'];
}
}



?>