• 04-07-2015, 18:17:17
    #1
    Merhaba Arkadaşlar
    Az bir bilgim ve forumlardan da yararlanarak bir script yazdım ve script'im için çoklu resim yükleme yapmak istiyorum fakat ne kadar uğraştım ise mantığını çözemedim.
    benim kullandığım tekli yükleme kodum var acaba arkadaşlar paylaştığım kodu düzenleyebilir misiniz çoklu yükleme yapabilirmisiniz.
    Şimdiden çok teşekkür ederim Arkadaşlar Yardımlarınız için İyi Günler

    Kodlar;

    İçerik Ekleme Sayfasında Kullandığım input

    <a href="JavaScript:newPopup('../cover/kapak1/index.php');">Resim 
    <input  type="text" name="dosyalink" id="dosyalink" size ="5"  /> </a>
    index.php

    <body style="background: #90a5b8">
    <title>Resim Yükle - Kapak 1</title>
    <form action="yukle.php" method="post" enctype="multipart/form-data">
      <p align="left"> 
        <input type="file" name="dosya" style="font-family: Verdana; font-size: 8pt; border: 1px solid rgb(0,0,0)">
      </p>
        <input type="submit" value="Yükle" style="font-family: Verdana; font-size: 8pt; border: 1px solid rgb(0,0,0)">
    </form>
    </body>
    yukle.php
    <body style="background: #90a5b8">
    <?php 
    include("baglanti.php"); 
    ini_set('display_errors',0);  
    @$isim=$_POST['isim']; 
    $dosyaUzantisi = substr($_FILES["dosya"]["name"],-4,4);
    $dosya_ismi= rand(0,9999999).$dosyaUzantisi;
    @$gecici_yer=$_FILES['dosya']['tmp_name']; 
    @$hata=$_FILES['dosya']['error']; 
    @$ksube=$_POST['ksube']; 
    $md5 = $dosya_ismi;
    // Resimlerde genel olarak png veya jpg olduğu için uzantısını manuel girdim ama isterseniz siz kendiniz substr ile aldığınız gibi alabilirsiniz
    $son = rand(1,9999999).rand(1,9999999).rand(1,9999999)."_".$md5;
    echo $ksube; 
    $ayir= "-"; 
    if ($dosya_ismi=="" || $hata>0 || substr($dosya_ismi,-15)=="php" ) { 
    echo "Dosyanız izin kontrollerini geçemedi."; 
    }else{ 
     
    include("ayar.php"); 
     
    $gercek_isim= $say_sira . substr($dosya_ismi,-600); 
     
    $link = "cover/kapak1/cover/" . $son ; 
     
    if(move_uploaded_file($gecici_yer,"cover/" . $son)){ 
    echo "<b>Dosyanız Yüklendi.</b><br><br>Yüklenen Dosya:<code> <a href=" . $link . " >" . $link . "</a></code>" ;  
    }else{ 
    echo "Dosyanız yüklenirken bir sorunla karşılaşıldı."; 
    } 
     
    } 
     
     
    ?> 
    <br><br><hr style="border-bottom: 1px dashed #fff;"> 
    <a href="JavaScript:window.close()" onClick="javascript:opener.document.getElementById('dosyalink').value='<?php echo $link; ?>'"style="
        background: #E60000;
        padding: 3px;
        font-family: Verdana; 
        font-size: 9pt; border: 1px solid rgb(0,0,0);
        color: #fff;
        text-decoration: none;
    ">Resmi Ekle..</a>
    <?php 
    mysql_close(); 
    ob_end_flush();     
    ?></body>
  • 05-07-2015, 13:23:57
    #2
    Html kısmında file input isminin sonuna "[]" ekleyin. Veriler phpye dizi olarak gider.

    <input type="file" name="dosya[]" />
    <input type="file" name="dosya[]" />
    <input type="file" name="dosya[]" />
    Php kısmında for döngüsü kullanarak dizi şeklinde gelen bilgileri alın.

    for( $f=0; $f<COUNT($_FILES['dosya']); $f++ )
    {
    	// Upload kodları $_FILES[$f]['name'];
    	// Her resim için uygulanacak işlemler
    }
  • 06-07-2015, 09:44:59
    #3
    sonbaron adlı üyeden alıntı: mesajı görüntüle
    Html kısmında file input isminin sonuna "[]" ekleyin. Veriler phpye dizi olarak gider.

    <input type="file" name="dosya[]" />
    <input type="file" name="dosya[]" />
    <input type="file" name="dosya[]" />
    Php kısmında for döngüsü kullanarak dizi şeklinde gelen bilgileri alın.

    for( $f=0; $f<COUNT($_FILES['dosya']); $f++ )
    {
    	// Upload kodları $_FILES[$f]['name'];
    	// Her resim için uygulanacak işlemler
    }
    Merhaba sonbaron;

    input kısmını halletim, for döngüsünü tam anlayamadım nereye koyacağım acaba?
    birde input kısmını dediğiniz gibi yaptıktan sonra "Dosyanız izin kontrollerini geçemedi. " Diye hata veriyor.

    iyi günler
  • 06-07-2015, 13:53:14
    #4
    Veriler dizi olarak geliyor. Bu yüzden for döngüsü kullanıyoruz. $_FILES['dosya'] yerine $_FILES['dosya']['name'][0] , $_FILES['dosya']['name'][1] şeklinde kullanıyoruz.

    Düzenleme :

    Bir resim için yaptığınız tüm işlemleri her resim için yapacağınız için uzantı aldığınız yerden başlayarak resmin yüklendiği yere kadar olan kodların hepsi for döngüsü içinde yer alacak. $_FILES['dosya']['name'] yerine $_FILES['dosya']['name'][$f] şeklinde kullanacaksınız. ( $f for döngüsünden gelen sayı )

    Not: Uzantıyı $uzanti = end(explode(".",$dosyaAdi)); şeklinde alırsanız daha sağlıklı olur. 3 haneden fazla uzantılarda sizin yönteminiz çalışmaz.
  • 06-07-2015, 17:58:36
    #5
    sonbaron adlı üyeden alıntı: mesajı görüntüle
    Veriler dizi olarak geliyor. Bu yüzden for döngüsü kullanıyoruz. $_FILES['dosya'] yerine $_FILES['dosya']['name'][0] , $_FILES['dosya']['name'][1] şeklinde kullanıyoruz.

    Düzenleme :

    Bir resim için yaptığınız tüm işlemleri her resim için yapacağınız için uzantı aldığınız yerden başlayarak resmin yüklendiği yere kadar olan kodların hepsi for döngüsü içinde yer alacak. $_FILES['dosya']['name'] yerine $_FILES['dosya']['name'][$f] şeklinde kullanacaksınız. ( $f for döngüsünden gelen sayı )

    Not: Uzantıyı $uzanti = end(explode(".",$dosyaAdi)); şeklinde alırsanız daha sağlıklı olur. 3 haneden fazla uzantılarda sizin yönteminiz çalışmaz.
    Merhaba Hocam bilgileriniz için teşekkür ederim şöyle birşey yaptım yüklüyorum sorunsuzca resimi ekle dediğimde sadece 1. resmi ekliyor

    kodlar:

    input kodu

    <form action="yukle.php" method="post" enctype="multipart/form-data">
      <p align="left"> 
      <input type="file" name="dosya[]" id="dosya[]" multiple="multiple" />
      </p>
        <input type="submit" value="Yükle" style="font-family: Verdana; font-size: 8pt; border: 1px solid rgb(0,0,0)">
    </form>

    yukle.php

    <body style="background: #90a5b8">
    <?php 
    include("baglanti.php"); 
    
    if($_FILES){
    $klasor="cover"; //klasör ile index.php sayfanız aynı klasör içinde olsun
    
    $dosya_sayi=count($_FILES['dosya']['name']);
    
    for($i=0; $i<$dosya_sayi; $i++){
    if(!empty($_FILES['dosya']['name'][$i])){
    
    $dosyaUzantisi = substr($_FILES["dosya"]["name"][$i],-4,4); //dosya formatını alıyoruz yani .jpg .png .gif gibi
    echo $dosyaUzantisi;
    
    $dosyaAdi = rand(0,999999).$dosyaUzantisi; //dosya ismini rand fonksiyonu ile değiştiriyoruz
    $dosyaUzantisi2 = $_FILES["dosya"]["type"][$i]; //dosya formatını alıyoruz alıyoruz
    
    if($dosyaUzantisi2=="image/jpeg" || $dosyaUzantisi2=="image/gif" || $dosyaUzantisi2 == "image/png"){//dosyanın formatı var ise
    
    if(is_uploaded_file($_FILES["dosya"]["tmp_name"][$i])){//dosyanın yüklenip,Yüklenmediğini Kontrol Eder
    
    move_uploaded_file($_FILES['dosya']['tmp_name'][$i],$klasor."/".$dosyaAdi);
    
    echo "Dosya Başarıyla Yüklendi";
    
    }else{
    echo "Dosya Yükleme sırasında Hata oluştu.";
    }
    
    }else{
    echo "Dosya formatı JPG,GIF veya PNG olmalıdır.";
    }
    
    $link = "cover/kapak1/cover/".$dosyaAdi ; 
    }
    }
    
    }
     
    ?> 
    <br><br><hr style="border-bottom: 1px dashed #fff;"> 
    <a href="JavaScript:window.close()" onClick="javascript:opener.document.getElementById('dosyalink').value='<?php echo $link; ?>'"style="
        background: #E60000;
        padding: 3px;
        font-family: Verdana; 
        font-size: 9pt; border: 1px solid rgb(0,0,0);
        color: #fff;
        text-decoration: none;
    ">Resmi Ekle..</a>
    <?php 
    mysql_close(); 
        
    ?></body>
  • 06-07-2015, 20:27:10
    #6
    Kodlarda hata görünmüyor. Dosya inputları multiple yapmak yerine birden fazla input yazın.
  • 06-07-2015, 20:41:44
    #7
    sonbaron adlı üyeden alıntı: mesajı görüntüle
    Kodlarda hata görünmüyor. Dosya inputları multiple yapmak yerine birden fazla input yazın.
    Onuda denedim hocam fakat olmadı?
    Resmi ekle diyorum 1 adet resmi atıyor.
  • 06-07-2015, 21:57:13
    #8
    Kimlik doğrulama veya yönetimden onay bekliyor.
    edward adlı üyeden alıntı: mesajı görüntüle
    Merhaba Arkadaşlar
    Az bir bilgim ve forumlardan da yararlanarak bir script yazdım ve script'im için çoklu resim yükleme yapmak istiyorum fakat ne kadar uğraştım ise mantığını çözemedim.
    benim kullandığım tekli yükleme kodum var acaba arkadaşlar paylaştığım kodu düzenleyebilir misiniz çoklu yükleme yapabilirmisiniz.
    Şimdiden çok teşekkür ederim Arkadaşlar Yardımlarınız için İyi Günler

    Kodlar;

    İçerik Ekleme Sayfasında Kullandığım input

    <a href="JavaScript:newPopup('../cover/kapak1/index.php');">Resim 
    <input  type="text" name="dosyalink" id="dosyalink" size ="5"  /> </a>
    index.php

    <body style="background: #90a5b8">
    <title>Resim Yükle - Kapak 1</title>
    <form action="yukle.php" method="post" enctype="multipart/form-data">
      <p align="left"> 
        <input type="file" name="dosya" style="font-family: Verdana; font-size: 8pt; border: 1px solid rgb(0,0,0)">
      </p>
        <input type="submit" value="Yükle" style="font-family: Verdana; font-size: 8pt; border: 1px solid rgb(0,0,0)">
    </form>
    </body>
    yukle.php
    <body style="background: #90a5b8">
    <?php 
    include("baglanti.php"); 
    ini_set('display_errors',0);  
    @$isim=$_POST['isim']; 
    $dosyaUzantisi = substr($_FILES["dosya"]["name"],-4,4);
    $dosya_ismi= rand(0,9999999).$dosyaUzantisi;
    @$gecici_yer=$_FILES['dosya']['tmp_name']; 
    @$hata=$_FILES['dosya']['error']; 
    @$ksube=$_POST['ksube']; 
    $md5 = $dosya_ismi;
    // Resimlerde genel olarak png veya jpg olduğu için uzantısını manuel girdim ama isterseniz siz kendiniz substr ile aldığınız gibi alabilirsiniz
    $son = rand(1,9999999).rand(1,9999999).rand(1,9999999)."_".$md5;
    echo $ksube; 
    $ayir= "-"; 
    if ($dosya_ismi=="" || $hata>0 || substr($dosya_ismi,-15)=="php" ) { 
    echo "Dosyanız izin kontrollerini geçemedi."; 
    }else{ 
     
    include("ayar.php"); 
     
    $gercek_isim= $say_sira . substr($dosya_ismi,-600); 
     
    $link = "cover/kapak1/cover/" . $son ; 
     
    if(move_uploaded_file($gecici_yer,"cover/" . $son)){ 
    echo "<b>Dosyanız Yüklendi.</b><br><br>Yüklenen Dosya:<code> <a href=" . $link . " >" . $link . "</a></code>" ;  
    }else{ 
    echo "Dosyanız yüklenirken bir sorunla karşılaşıldı."; 
    } 
     
    } 
     
     
    ?> 
    <br><br><hr style="border-bottom: 1px dashed #fff;"> 
    <a href="JavaScript:window.close()" onClick="javascript:opener.document.getElementById('dosyalink').value='<?php echo $link; ?>'"style="
        background: #E60000;
        padding: 3px;
        font-family: Verdana; 
        font-size: 9pt; border: 1px solid rgb(0,0,0);
        color: #fff;
        text-decoration: none;
    ">Resmi Ekle..</a>
    <?php 
    mysql_close(); 
    ob_end_flush();     
    ?></body>
    Merhaba Tayfun Erbilenin bu konu hakkında bir anlatımı var eğer izler iseniz hem konu hakkında bilgiye sahip olursunuz hepde sorununuzu giderebilirsiniz. Kolay gelsin İyi çalışmlar.
    Anlatım Linki :http://www.erbilen.net/386-verotnet-...ad-sorunu.html