HTML "file" nesnesiyle çoklu seçim. İE'de sorun?

Kodla Büyü

s_kajmeran

Hiperaktif Üye
Hiperaktif
Mesajlar
3,863
Asp'de çoklu upload yapıyorum, file nesnesine çoklu seçim için kod buldum ama İE'de sıkıntı çıkarıyor kod ve tek seçime izin veriyor. Çoklu seçim için ne yapmalıyım ya da aşağıdaki kodda değiştirilebilecek biryer varsa yardım ederseniz sevinirim... Aşağıdaki kodlar Chrome ve Frefox'da sorunsuz çalışırken İE'de çalışmıyor...

Kod:
<form action="upload2.asp" method="post" enctype="multipart/form-data"> 

<script type="text/javascript" language="javascript"> 
   function makeFileList( ) { 
   var input = document.getElementById("filesToUpload" ); //fileupload 
   var ul = document.getElementById("fileList" ); 
   while (ul.hasChildNodes( ) ) 
{ 
   ul.removeChild(ul.firstChild ); 
   } 
   for (var i = 0; i < input.files.length; i++ ) 
   { 
     var li = document.createElement("li" );               
     document.getElementById("Text1" ).value += input.files.name.toString( )+","; //ayrica text dosyasina da aralarina virgül koyarak ekliyorum çekerken buradan çekecegim 
                        
                 li.innerHTML = input.files.name; 
                 ul.appendChild(li ); 
             } 
             if (!ul.hasChildNodes( ) ) { 
                 var li = document.createElement("li" ); 
                 li.innerHTML = 'No Files Selected'; 
                 ul.appendChild(li ); 
             } 
         } 
</script>
<input type="file" name="resim1" id="filesToUpload" runat="server" multiple="" onChange="makeFileList( );" /> 
<input id="Button10" type="submit" value="gonder" runat="server" OnServerClick="btnUploadTheFile_Click" /> 

      
</form>
 
<meta http-equiv="X-UA-Compatible" content="IE=edge">

bunu bir dene belki işine yarar.
 
Tem istediğim gibi olmadı ama aşağıdaki kodla şimdilik işimi gördüm... Aşağıdaki kod dilediğiniz kadar file nesnesi ekler... Yani kaç adet resminiz varsa o kadar file nesnesi ekleyip sonra kaydedebilirsiniz...

Yukarıdaki kod ise tek file ile çoklu seçmeye müsade ediyor, Chrome ve Firefox için...


Kod:
<form action="upload2.asp" method="post" enctype="multipart/form-data"> 

<script type="text/javascript">
var arrInput = new Array(0);
  var arrInputValue = new Array(0);

function addInput() {
  arrInput.push(arrInput.length);
  arrInputValue.push("");
  display();
}

function display() {
  document.getElementById('parah').innerHTML="";
  for (intI=0;intI<arrInput.length;intI++) {
    document.getElementById('parah').innerHTML+=createInput(arrInput[intI], arrInputValue[intI]);
  }
}

function saveValue(intId,strValue) {
  arrInputValue[intId]=strValue;
}  

function createInput(id,value) {
  return "<input type='file' id='filesToUpload' name='resim1' onChange='javascript:saveValue("+ id +",this.value)' value='"+ value +"'><br>";
}

function deleteInput() {
  if (arrInput.length > 0) { 
     arrInput.pop(); 
     arrInputValue.pop();
  }
  display(); 
}

</script>
</HEAD>
<BODY>

<p id="parah">Kaç adet resim ekleyecekseniz o kadar kutu oluşturun</p>
<a href="javascript:addInput()">Yeni Resim Kutusu Ekle</a><br>
<a href="javascript:deleteInput()">En Son Kutuyu Sil</a>

<input id="Button10" type="submit" value="gonder" runat="server" OnServerClick="btnUploadTheFile_Click" /> 

</form>
 
Hocam kod birleştirmek işi değil...

Şöyle anlatayım, 1. kod facebook'un gelişmiş fotograf yükleme olayı gibi açılan penceeden birsürü resim seçebiliyorsunuz ancak İE hariç.


2. kod ise yine facebook'un basit yükleyici mantığı gibi istediğiniz kadar kutucuk oluşturuyorsunuz ve her kutucuğun içine tek tek resimleri gösteriyorsunuz...



İE8 kullanıyorum hocam...
 

Ekli dosyalar

  • ikinci.JPG
    ikinci.JPG
    47.2 KB · Görüntüleme: 1,009
  • birincii.JPG
    birincii.JPG
    40.6 KB · Görüntüleme: 1,007
İE9 de denemenizi tavsiye ederim. ANlamadığım olay tarayıcıya göre değişmesi. Acaba tarayıcıyı belirtebilirsek bi yerde sorun halledilebilir mi?
 
Hocam İE9'da bu sorun varmı bilmiyorum ancak İE8'de file nesnesindeki çoklu işlemi tanımıyor algılamıyor...

<input type="file" name="resim1" multiple="" />

Bende sıkıntı olmaz Chrome ile de yapabilirim bu işlemi zaten Chrome kullanıyorum, ancak site yapıp verdiğim adama Chrome kullan diyemem :)
 
s_kajmeran' Alıntı:
Hocam İE9'da bu sorun varmı bilmiyorum ancak İE8'de file nesnesindeki çoklu işlemi tanımıyor algılamıyor...

<input type="file" name="resim1" multiple="" />

Bende sıkıntı olmaz Chrome ile de yapabilirim bu işlemi zaten Chrome kullanıyorum, ancak site yapıp verdiğim adama Chrome kullan diyemem :)
İE9 kullan dersen sıkıntı olmayabilir:) Son versiyona göre ayarladım ayaana yatarsın:) Ama ilk önce ie9 d abir denemen lazım:) Bence ie8 ve altının yapısından kaynaklanıyor. Yani ne yaparsan yap çoklu seçim yaptıramazsın bu versiyonlarda. Benim tahminim bu. Ha bunu neye dayanarak söylüyorum. Programcılık mantığıma göre. Yoksa bi nane bildiğimden değil:)
 
Merak ettiğim dinemik dilleri kullanan arkadaşlar resim yükleme olayını nasıl hallediyor, tek tek çok uzun iş, çoklu seçme işlemine de İE izin vermiyor...

Şimdiye kadar hep tek tek resim yüklüyordum ama çekilir çile değildi... PHP için Flash'lı eklentiler var bu işi yapan asp için böyle bişey bulamadım... Neyse artık ikinci yolla halledecem, belki yönetim paneline bir uyarı koyup ikisini ekleyebilirim...

Halen bilen arkadaşlardan cevap bekliyorum...

@brodil ve @sibilim_ogretmeni yorumların için teşekkür ettim arkadaşlar...
 
Geri
Üst