Salve a tutti.. ho un piccolo problema con Javascript. Vorrei permettere ad un utente di effettuare l'upload di più files simultaneamente ovvero , questi verranno selezionati tutti e successivamente uno script eseguirà l'invio al server .
Ho pensato di inserire prima i nomi dei files in un array , magari visualizzandoli in output (fin qui tutto fatto).. e poi in qualche modo (e qui iniziano i problemi) inviarli al server.
Avevo pensato di generare ,in base al numero di file selezionati ,dei campi <input type="file"..> all'interno di una pagina con un form html e poi inviarli tutti tramite post ad una pagina php..VVoVe:
ma la confusione ha avuto il sopravvento ..
poi ho pensato di utilizzare un unico campo e di cambiare dinamicamente il nome del campo in modo che sul server vengano caricati tutti i file con nome temporeneo es ..file1 file2 file3 con i quali effettuerò una move_uploaded_file in php, per copiarli sul server nella cartella da me definita..
eccovi un po di codice..
elencoFile=new Array();// qui metto tutti in nomi dei file
var position=0;
function caricaFile(Nomefile){// carica il nome del file inserito nell'array
elencoFile[position]=Nomefile;
position++;
}
function visualizzaFile(){// visualizza l'elenco dei file selezionati su di un iframe
doc=open("","output");
doc.document.write("
"+elencoFile[position-1]+"</p>");
}
function setName(form){// setta il campo name del tag <input type="file"
form.elements[0].name="myfile"+position;
alert(form.name);
}
function Archivia(form){// esegue submit sul form contenente il campo file
setName(form);//alla pagina php che esegue l'upload
form.submit();
}
function sendIndex(Nomeform){// setta il valore di un campo hidden che invio alla pag php
Nomeform.index.value=position;//che tiene conto del numero di file inseriti
alert(Nomeform.index.value);
}
nella pagina php faccio..
$i=$_POST['index'];// per il contatore
$filename='myfile'.$i; // nome del file
$file=$_FILES[$filename]['name'];
if(is_uploaded_file($_FILES[$filename]['tmp_name'])){
copy($_FILES[$filename]['tmp_name'],"UserPreview/".$_FILES[$filename]['name']);
}else{
move_uploaded_file($_FILES[$filename]['tmp_name'],"UserPreview/".$_FILES[$filename]['name'] );}
"
header("Location:InserimentoFumettiUtente.htm");pe r tornare alla pagina di partenza
nella pagina html creo un form con ...
<input type="File">
<input type="hidden" name="index">
<input type="button" name="clicca" value="carica" onclick="Javascript:caricaFile(form.elements[0].value);visulizzaFile();sendIndex(form);Archivia(f orm);"
Non funziona perchè il php non riconosce come nome valido per il file
la stringa $filename.
suggerimenti?? Buon divertimento.