Acesta este un script de upload prin care pot fi incarcate mai multe fisiere in acelasi timp.
Scriptul foloseste JavaScript si PHP. Poate fi implementat si folosit atat in pagini HTML cat si PHP, dar serverul trebuie sa ruleze PHP.
Incarcarea fisierelor se face fara reincarcarea paginii, astfel, un eventual refresh nu va retrimite datele la server.
- Aici puteti vedea cum functioneaza. Este doar pt. test, in realitate nu va incarca nici un fisier pe server.
<?php
/*** Script de la: http://www.marplo.net/php-mysql/ ***/
$updir = 'upload'; // Directorul pt. upload
$max_size = 500; // Marimea maxima, in KiloBytes, care este permisa
// Seteaza matricea cu tipurile de fisiere permise
$allowtype = array('bmp', 'flv', 'gif', 'jpg', 'jpeg', 'mp3', 'pdf', 'png', 'rar', 'zip');
// Creaza directorul din $updir (cu CHMOD 077), daca nu exista
if (!is_dir($updir)) mkdir($updir, 0777);
/** Incarcarea imaginii pe server **/
$rezultat = array();
// Daca este primit din formular un fisier valid
if (isset ($_FILES['file_up'])) {
// Seteaza pt. upload fisierele primite (pot fi primite din mai multe campuri 'file_up')
for($f=0; $f<count($_FILES['file_up']['name']); $f++) {
// Verifica daca fisierul are tipul de extensie permis
$type = end(explode(".", strtolower($_FILES['file_up']['name'][$f])));
if (in_array($type, $allowtype)) {
// Verifica daca fisierul are marimea permisa
if ($_FILES['file_up']['size'][$f]<=$max_size*1000) {
// Daca nu sunt erori in procesul de copiere
if ($_FILES['file_up']['error'][$f]==0) {
// Seteaza locatia si numele pt. incarcare pe server
$thefile = $updir . "/" . $_FILES['file_up']['name'][$f];
// Daca fisierul nu poate fi incarcat, returneaza mesaj
if (!move_uploaded_file ($_FILES['file_up']['tmp_name'][$f], $thefile)) {
$rezultat[$f] = ' Fisierul nu a putut fi copiat, incercati din nou';
}
else {
// Retine numele fisierului incarcat
$rezultat[$f] = '<b>'.$_FILES['file_up']['name'][$f].'</b>';
}
}
}
else { $rezultat[$f] = 'Fisierul <b>'. $_FILES['file_up']['name'][$f]. '</b> depaseste marimea permisa de maxim <i>'. $max_size. 'KB</i>'; }
}
else { $rezultat[$f] = 'Fisierul <b>'. $_FILES['file_up']['name'][$f]. '</b> nu are tipul de extensie permis'; }
}
// Returneaza rezultatul
$rezultat2 = implode('<br />', $rezultat);
echo '<h4>Fisiere incarcate:</h4>'.$rezultat2;
}
?>
/*** Script de la: http://www.marplo.net/php-mysql/ ***/
// Functia care adauga o noua casuta de upload in formular
function add_upload(form_id) {
// Elementul inaintea caruia e adaugat cel nou
var element = document.getElementById('sub');
// Creaza elementul nou <input>, si atributele lui
var new_el = document.createElement("input");
new_el.setAttribute("type", "file");
new_el.setAttribute("name", "file_up[]");
document.getElementById(form_id).insertBefore(new_el, element);
}
// Functia care trimite datele din formular, fiind transferate la iframe
function uploading(theform){
// Adauga codul cu iframe-ul
document.getElementById('ifrm').innerHTML = '<iframe id="uploadframe" name="uploadframe" src="uploader.php" frameborder="0"></iframe>';
theform.submit(); // Executa trimiterea datelor
// Reinoeste formularul
document.getElementById('uploadform').innerHTML = '<input type="file" id="test" class="file_up" name="file_up[]" /><input type="submit" value="UPLOAD" id="sub" />';
return false;
}
<style type="text/css">
#uploadform input {
display:block;
margin:3px auto;
}
</style>
Scriptul este gratuit, il pteti modifica si folosi dupa cum doriti.