Dinamik birden fazla yükleme dosyası oluşturmak

6 Cevap php

Herkes dinamik bir yükleme formu oluşturmak için en iyi yolu biliyordu, merak ediyorum?

İşte elde etmek çalışıyorum ne: Aşağıda gösterilen kod ben basıldığında, dosya yükleme için başka bir form eklemek gerekir ki bir düğme olmasını istiyorsanız, bir yükleme sağlar. Ben yüklemek istiyorsanız, - en 7 dosya diyelim, ben kendi satırında bu yükleme formları, her oluşturmak için düğmesine 7 kez basın istiyorum.

Ben bunu yine de var mı?

Yardımlarınız için teşekkürler:

<html>
    <head>
        <title> Multiple File Uploads </title>
    </head>
    <body>
        <form enctype="multipart/form-data" action="uploader.php" method="POST">
            Choose a file to upload: <input name="uploadedfile" type="file" /><br />
            <input type="submit" value="Upload File" />
        </form>
    </body>
</html>

6 Cevap

Genellikle böyle bir şey, istemci tarafı yapın:

<div id='Uploadcontainer'>
   <input type='file' name='uploadfiles[]' class='uploadfile' />
</div>
<button id='extraUpload'>Add another field</button>
<script type='text/javascript'>
  $('#extraUpload').click(function(){
      $('.uploadfile:last').clone().appendTo('#uploadContainer');
  });
</script>

Bu jQuery kullanıyor. Sonra sunucu tarafında yapabilirsiniz $ _FILES ['UploadFiles'] dizi üzerinde kolay döngü:

foreach($_FILES['uploadfiles'] as $file){
  //do stuff with $file
}

Basit bir örnek için buraya bir göz atın

http://mohamedshaiful.googlepages.com/add_remove_form.htm

Şaka

jQuery multifile çağırdı ben kullandım güzel bir eklenti vardır. Bunu kontrol etmek isteyebilirsiniz.

http://www.fyneworks.com/jquery/multiple-file-upload/

Here's a really really simple one, works in FireFox, Chrome and IE7. I'd really advise you to check out a javascript framework such as jQuery, it'll make your life easier.

<div id='Uploadcontainer'>
<input type='file' name='uploadfiles[]' class='uploadfile' />
</div>
<button id='extraUpload' onclick="return addAnother('Uploadcontainer')">Add another field</button>
<script type='text/javascript'>
function addAnother(hookID)
{
    var hook = document.getElementById(hookID);
    var el      =   document.createElement('input');
    el.className    =   'uploadfile';
    el.setAttribute('type','file');
    el.setAttribute('name','uploadfiles[]');
    hook.appendChild(el);
    return false;
}

You could try this jQuery plugin called uploadify You could try YUI uploader

Sadece Flaş bazen farklı şekillerde sunucuya veri nakleder gibi sunucuda doğru dosyayı ele emin olun. Eğer İstek değerleri ne kontrol bazı yolu var ise, o zaman iyi olmalıdır.

Düz HTML anda ile bunu yapmak için hiçbir yolu yoktur. Ben tarayıcılar ve önümüzdeki HTML5 spec son sürümlerinde ele alınması başlangıç ​​olduğunu düşünüyorum.

En güncel çapraz tarayıcı çözümleri (ve ben Flash düşünüyorum) bir JS kütüphanesi gerektirir. Alternatif ise kendi giriş elemanı ile her dosyayı tek tek seçmektir. Bilinen nedenlerden dolayı tarayıcılar ile çalışmak onlara zor yapabilirsiniz dosya yükleme elemanlarının scripting ve ekranın etrafında çok sıkı güvenlik uygulamak.