63 messaggi dal 12 giugno 2007
Buonasera a tutti. Su un sito in html ho un area download con i link ai files presenti in una cartella pubblica. Ogni volta che carico un nuovo file devo aggiungere sulla pagina il relativo link.
Con aspx si può creare una pagina che in automatico mi torni il contenuto di una precisa cartella con il nome dei rispettivi files possibilmente cliccabili per il download?

Scusate la domanda ma con aspx sono davvero agli inizi....

Grazie mille a tutti...
Si puoi dare in diversi modi es:

foreach(string directoryPath in Directory.GetDirectories(@"C:\"))
{
  MessageBox.Show(directoryPath);
}



Devi usare i metodi in System.IO.DirectoryInfo e giocare un po :)

e poi puoi effettuare ildownload impostando Content Type e passando il file richiesto:


  Response.ContentType = "application/octet-stream";
  Response.AppendHeader("Content-Disposition", "attachment; filename=" +    info.Name);
   Response.AppendHeader("Content-Length", info.Length.ToString());


Ciao :)

Corso SEO DeepSEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
438 messaggi dal 04 agosto 2002
Contributi
ciao,

ti propongo un esempio semplice e completo utilizzando il controllo Repeater.
Innanzitutto nella tua pagina aspx inserisci il controllo, e lo puoi strutturare in questo modo:
<div>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate><table><tr><th>Elenco files</th></tr></HeaderTemplate>
<ItemTemplate><tr><td><a href="/data/<%# Eval("Name")%>" title="Scarica il file: <%# Eval("Name")%>" target="_blank"><%# Eval("Name")%></a></td></tr></ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>
</div>

come vedi ti prepari a popolare una tabella con un unica colonna con titolo Elenco files. All'interno delle righe (<ItemTemplate/>) inserisci un normale link nel quale la parte <%# Eval("Name")%> verrà valorizzata con il nome di tutti i file di una cartella.

Ora ti sposti nella pagina di codice. Quì nell'evento Load della pagina puoi scrivere:
 If Not Page.IsPostBack Then
Dim dirInfo As New IO.DirectoryInfo(Server.MapPath("/data/"))
Repeater1.DataSource = dirInfo.GetFiles
Repeater1.DataBind()
End If

E basta! hai finito

La parte interessante nelle tre righe di codice riportate sopra è data dalla classe DirectoryInfo che, dato il percorso (nel nostro caso Server.MapPath("/data/")) raccoglie molte informazioni riguardanti i files presenti.
L'elenco completo è questo, i nomi sono auto esplicativi: Name, Length, DirectoryName, IsReadOnly, Exists, FullName, Extension, CreationTime, CreationTimeUtc, LastAccessTime, LastAccessTimeUtc, LastWriteTime e LastWriteTimeUtc.
Per visualizzare anche queste info basta inserire, all'interno dell'ItemTemplate visto prima <%# Eval("NomeProprietà")%> dove NomeProprietà è uno dei valori visti sopra.

ciao ciao,
v
Modificato da vladimiro il 16 settembre 2008 00.34 -
63 messaggi dal 12 giugno 2007
Ciao, grazie mille ma ti devo chiedere una cosa semplice che da solo non riesco a fare, il codice da da aggiungere dove e come va inserito nel seguente codice:

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Pagina senza titolo</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate><table><tr><th>Elenco files</th></tr></HeaderTemplate>
<ItemTemplate><tr><td><a href="/data/<%# Eval("Name")%>" title="Scarica il file: <%# Eval("Name")%>" target="_blank"><%# Eval("Name")%></a></td></tr></ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>



Scusa la domanda ma non sono un programmatore..

Grazie mille...
63 messaggi dal 12 giugno 2007
Ok, in C# è così:

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Pagina senza titolo</title>
</head>
<body>

<script runat="server">
void Page_Load(object sender, System.EventArgs e){
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(Server.MapPath("../data/"));
Repeater1.DataSource = di.GetFiles();
Repeater1.DataBind();
}
</script>

<form id="form1" runat="server">
<div>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate><table><tr><th>Elenco files</th></tr></HeaderTemplate>
<ItemTemplate><tr><td><a href="../data/<%# Eval("Name")%>" title="Scarica il file: <%# Eval("Name")%>" target="_blank"><%# Eval("Name")%></a></td></tr></ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>


e funziona molto bene...

grazie mille
438 messaggi dal 04 agosto 2002
Contributi
matteor78 ha scritto:

e funziona molto bene...
grazie mille


ottimo! ciao, buon lavoro,
v

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.