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