Ciao a tutti, ho cercato su mille post di questo e di altri forum ma non riesco a trovare nulla che faccia al caso mio.

Attualmente ho una pagina asp che mi permette di selezionare un'immagine per volta (fino a un max di 10 per ogni upload) caricandole sul sito. In pratica ogni volta che seleziono un file si aggiunge una casella di testo col suo pulsantino "Sfoglia" che mi permette di scegliere un nuovo file da caricare, questo per 10 volte
Avrei bisogno di uno script che mi permettesse di selezionare tutti i file di una cartella o direttamente la cartella stessa caricandoli poi sul server. Sarebbe sufficiente in realtà che eseguisse lo script per l'upload che uso adesso ricorsivamente per ogni file che trova.

Vi posto il codice:

Grazie 1000
Riccardo

codice:
<%
Server.ScriptTimeout = 5400 ' 90 minuti (per upload)

Dim sSql, rs, cConn
Dim sCmd, i, sIdFoto, sDescr, sDel, sId, sData
Dim sNewDescr
Dim htmRow, titolo
dim sFlgPubblica, sFlgVisibilitaPubblica
dim oUpload, sFilename, sFile, oSImage

sId = Request("id")
sCmd = Request("cmd")
Call ConnOpen(cConn, DEF_CONN)

If sCmd = "agg" or sCmd = "ins" Then
	Set oUpload = Server.CreateObject("Persits.Upload.1")
	oUpload.OverwriteFiles = False
	'Response.Write(UPROOT)
	'Response.End
	sSave = oUpload.Save(UPROOT)


	sData = oUpload.Form("datag")
	If sData = "" or IsNull(Trim(sData)) Then sData = Date()

  sFlgPubblica = 0
	If oUpload.Form("FlgPubblica") = "1" Then sFlgPubblica = 1

	sFlgVisibilitaPubblica = 1
	If oUpload.Form("FlgVisibilitaPubblica") = "0" Then sFlgVisibilitaPubblica = 0

	sIdFoto = Split(oUpload.Form("idfoto"), ",")
	sDescr = Split(oUpload.Form("descr"), "<>")

		'inserisco nuova gallery
		sSql = "INSERT INTO Gallerie (titolo,data,pubblicata,visibilita_pubblica) VALUES ('" &Trim(FixQuotes(oUpload.Form("titolo"))) &"','" & sData & "'," & sFlgPubblica & "," & sFlgVisibilitaPubblica & ")"
		cConn.Execute(sSql)
		sSql = "SELECT MAX(id) As MaxId FROM Gallerie"
		Call rsOpen(sSql, rs, cConn)
		sId = rs("MaxId")
		Call rsClose(rs)
	end if

	' inserisco le nuove foto
	sNewDescr = Split(oUpload.Form("newdescr"), "<>")
	For i = 1 To UPLOADSLOTS
		Set sFile = oUpload.Files("newupl" & i)
  	If Not sFile Is Nothing Then
  		sFilename = Mid(oUpload.Files("newupl" & i).Path, _
  						    InstrRev(oUpload.Files("newupl" & i).Path, "\")+1, _
  						    Len(oUpload.Files("newupl" & i).Path))
  		Call Resize(UPROOT, sFilename)
  		'creo la foto piccola
  		Call ResizeSmall(UPROOT, sFilename)
  		sFilename = Replace(sFilename,".jpeg",".jpg")
  		sSql = "INSERT INTO Immagini (id_galleria,didascalia,immagine_file,data_ins) VALUES (" &sId &",'" &Trim(FixQuotes(sNewDescr(i-1))) & "','" & sFilename &"', Date())"
  		cConn.Execute(sSql)
  	End If
	Next

End If

Call rsClose(rs)
Call ConnClose(cConn)


Function Resize(imgpath, img)
	....
End Function

Function ResizeSmall(imgpath, img)
	...
End Function
%>

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="JavaScript">
function eliminaFoto(id){
	var c = confirm("Eliminare la foto selezionata?");
	if(c){
		document.dati.action += '?id=<%=sId%>&iddel=' +id;
		document.dati.submit();
	}
	else return;
}

function invia(cmd){
	var idfoto='';
	var descr='';
	var newdescr='';
	var nojpg = false;
	var str = new String();
	if(cmd=='del'){
		var c = confirm('Sicuri di voler eliminare la gallery\ne tutte le foto contenute?');
		if(!c) return;
	}
	for(i=1;i<<%=i%>;i++){
		if(document.dati.elements['idfoto'+i].value != ""){
			idfoto += document.dati.elements['idfoto'+i].value+',';
		}
		descr += escape(document.dati.elements['descr'+i].value) +'<>';
	}
	//for(i=1;i<<%=i%>;i++){
	//	str = document.dati.elements['upl' +i].value;
	//	if(str!="" && str.substring(str.lastIndexOf("."),str.length)!=".jpg" && str.substring(str.lastIndexOf("."),str.length)!=".jpeg"){
	//		nojpg = true;
	//		break;
	//	}
	//}
	if(trim(document.dati.titolo.value)=='' || trim(document.dati.datag.value)=='') {
		alert('Inserire tutti i campi obbligatori!');
		return;
	}
	if(document.dati.datag.value != "" && isDate(trim(document.dati.datag.value)) == false){
		document.dati.datag.focus();
		return
	}
	for(i=1;i<=<%=UPLOADSLOTS%>;i++){
		newdescr += escape(document.dati.elements['newdescr'+i].value) +'<>';
	}
	//for(i=1;i<=<%=UPLOADSLOTS%>;i++){
	//	str = document.dati.elements['newupl' +i].value;
	//	if(str!="" && str.substring(str.lastIndexOf("."),str.length)!=".jpg" && str.substring(str.lastIndexOf("."),str.length)!=".jpeg"){
	//		nojpg = true;
	//		break;
	//	}
	//}

	document.dati.idfoto.value = idfoto;
	document.dati.descr.value = descr;
	document.dati.newdescr.value = newdescr;
	document.dati.action += '?cmd=' +cmd +'&id=<%=sId%>';
	document.dati.submit();
}

function toggleCheckboxes() {
  var state = document.dati.FlgPubblica.checked;
  for (var i = 0; i < document.dati.FlgVisibilitaPubblica.length; document.dati.FlgVisibilitaPubblica[i++].disabled = !state);
}
</script>
<title>Administration area - Italiano</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="adm_stile.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>

</head>
<body>

<table id="menu">
<tr>
    <td colspan="2" align="right">
    [img]images/ico_nuovo_01.gif[/img]
    [img]images/ico_salva_01.gif[/img]
    [img]images/ico_elimina_01.gif[/img]
    [img]images/ico_elenco_01.gif[/img]
</td>
  </tr>
</table>
<h1>Photo gallery</h1>
<table width="750" border="0" align="center" cellpadding="4" cellspacing="0" id="container">
  <form name="dati" method="post" action="gallery_dettaglio.asp" enctype="multipart/form-data">
	<input type="hidden" name="idfoto" value="">
	<input type="hidden" name="descr" value="">
	<input type="hidden" name="newdescr" value="">
	<tr>
		<td>Titolo gallery *</td>
		<td colspan="4"><input type="text" name="titolo" value="<%=titolo%>"></td>
	</tr>
	<tr>
		<td>Data *</td>
		<td colspan="4"><input type="text" name="datag" size="10" value="<%=sData%>"></td>
	</tr>
	<tr>
    <td colspan="4">
      <fieldset>
        <legend><input name="FlgPubblica" type="checkbox" class="checkbox" value="1" <%if sFlgPubblica = 1 then %>checked<% end if %> onclick="toggleCheckboxes()"/> Mostra</legend>
        <input type="radio" name="FlgVisibilitaPubblica" value="1" <%if sFlgVisibilitaPubblica = 1 then %>checked="checked"<% end if %> <%if sFlgPubblica = 0 then %>disabled="disabled"<% end if %> /> a tutti

        <input type="radio" name="FlgVisibilitaPubblica" value="0" <%if sFlgVisibilitaPubblica = 0 then %>checked="checked"<% end if %> <%if sFlgPubblica = 0 then %>disabled="disabled"<% end if %> /> ai soli iscritti
      </fieldset>
    </td>
  </tr>
	<%=htmRow%>
	<% For i = 1 To UPLOADSLOTS %>
	<%
	if trClass = "row0" then
		trClass="row1"
	else
		trClass="row0"
	end if
	%>
	<tr class="<%=trClass%>">
	  <td></td>
	  <td>
			<textarea name="newdescr<%=i%>" cols="40" rows="3"></textarea>
	  </td>
	  <td align="center"></td>
	  <td align="center" valign="top">
			<input name="newupl<%=i%>" type="file" size="30" />
			<input name="NewFoto<%=i%>" type="hidden">
	  </td>
	  <td valign="top"></td>
	</tr>
  <% Next %>
  </form>
</table>
</body>
</html>