Upload wielu plików jednocześnie

Multiple File Download

Przykład PHP + JavaScript2014-03-07 stopień trudności: łatwy

Nie lubisz wysyłać po jednym pliku, a html5 + jquery to dla Ciebie czarna magia ?
Poniżej proste rozwiązanie


Opcja "multiple" działa w przeglądarkach Internet Explorer od wersji 10, Firefox 3.6+, Chrome, Opera, oraz Safari.


<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" multiple="multiple" name="file[]" />
<input type="submit" value="Pobierz" />
</form>


<?
//przykład z kopiowaniem do katalogu
for($i=0;$i<count($_FILES['file']['size']);$i
++){

if(
strstr($_FILES['file']['type'][$i], 'image')!==false
){

$file 'pliki/'.time().'_'.$_FILES['file']['name'][$i
];
move_uploaded_file($_FILES['file']['tmp_name'][$i],$file
);

echo
"<a href=\"".$file."\"><img src=\"".$file."\" /></a><br/>"
;

}
}
?>

lub jeśli chcesz tylko przetestować opcję:

<?
//przykład dla testów
foreach ($_FILES['file']['name'] as $filename
) {
echo 
$filename "<br/>"
;
}
?>


Przykład wylistowania zaznaczonych plików


<input type="file" onchange="listing();" name="foto[]" id="foto" size="40"  multiple="" required>

<ul id="lista"><li>Brak zaznaczonych plików</li></ul>

<!--lista plików do pobrania-->

<script type="text/javascript">

function listing() {
var input = document.getElementById("foto");
var ul = document.getElementById("lista");
while (ul.hasChildNodes()) {
ul.removeChild(ul.firstChild);
}
for (var i = 0; i < input.files.length; i++) {
var li = document.createElement("li");
li.innerHTML = input.files[i].name;
ul.appendChild(li);
}
if(!ul.hasChildNodes()) {
var li = document.createElement("li");
li.innerHTML = 'Nie wybrano żadnych plików';
ul.appendChild(li);
}
}


</script>



 
close
Strona korzysta z plików cookies. Zastosowane pliki cookie służą jedynie do prowadzenia ogólnych statystyk pozwalających na określenie popularności serwisu.