Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684

    esplora risorse in remoto

    Sono un neofita, da circa due settimane mi sono avvicinato a questo mondo. Sto mettendo un sito aggiornabile in tutte le sue pagine utilizzando ampiamente asp: UPLOAD di file, Gestine NEWS, CLASSIFICHE e esplora cartelle.

    Ecco proprio l'ultima voce riguarda la discussione in oggetto. Ho scaricato l'articolo di Michele Mariotti "UN ESPLORA RISORSE IN ASP", nella sezione ASP AVANZATO. Ho provato lo script in locale e tutto ok. Ora vorrei modificarlo per caricarlo sul server, quindi su chi mi fornische l'hosting, e farlo funzionare per visualizzare alcuni contenuti (cartelle e file) contenuti nel sito e NON PER ACCEDERE ai file di sistema del server!!! Ho modificato il percorso nel file directory.asp con una sintassi del tipo (http://www.nomedominio.com/risorse/) ma giustamente non va. Ho anche eliminato il form che mi permette di modificare il path visto che non voglio cambiare il percorso, gli utenti devono restare in quella cartella!!!

    I file originali li potete scaricare dall'articolo stesso. Vorrei allegare un file .zip ma qui non me lo permette. Alego gli script.

    directory.asp

    <%
    Percorso = Trim(LCase(Request.QueryString("percorso")))

    If Percorso = "" then
    Response.redirect "index.asp?percorso=c:\"
    Else
    If Right(Percorso,1) <> "\" then Percorso = Percorso & "\"
    %>
    <FORM METHOD=GET ACTION="directory.asp">
    <INPUT TYPE=TEXT NAME="percorso" VALUE="<%=Left(Percorso,2)%>">

    <INPUT TYPE=SUBMIT VALUE="Cambia unitā">
    </FORM>
    <%

    Mostra_Directory Percorso
    End If

    Function Mostra_Directory(cartella)

    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set FL = fso.GetFolder(cartella)
    Set SF = fl.SubFolders

    If Len(cartella) > 3 then
    Precedente = ""
    For f = len(cartella)-1 to 1 step -1
    If Mid(cartella,f,1) = "\" and Precedente = "" then
    Precedente = Mid(cartella,1,f)
    End If
    Next
    Response.write "..
    "
    End If

    For Each FL in SF
    Sotto_Cartella = FL.Name
    If Len(cartella) < 3 then
    Response.write Sotto_Cartella & "
    "
    Else
    Response.write "" & Sotto_Cartella & "
    "
    End If
    Next
    End Function

    %>


    file.asp

    <%
    Percorso = Request.QueryString("percorso")
    If Right(Percorso,1) <> "\" then Percorso = Percorso & "\"

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(Percorso)
    Set fc = f.Files

    Numero_File = 0
    FP = ""
    DF = ""
    For Each whatever in fc
    Nome_File = Trim(LCase(whatever.name))
    If Nome_File <> "" Then Numero_File = Numero_File + 1
    ' Analizza le estensioni dei file alla ricerca di quelli editabili
    Select Case Right(Nome_File,4)

    Case ".txt"
    FP = FP & Nome_File & "
    "
    DF = DF & "File di testo
    "
    Case ".asp"
    FP = FP & Nome_File & "
    "
    DF = DF & "Active Server Page
    "
    Case ".htm", "html"
    FP = FP & Nome_File & "
    "
    DF = DF & "Pagina HTML
    "
    Case ".exe", ".com"
    FP = FP & Nome_File & "
    "
    DF = DF & "File di programma
    "
    Case ".bat"
    FP = FP & Nome_File & "
    "
    DF = DF & "File di programma (Batch)
    "
    Case ".mdb"
    FP = FP & Nome_File & "
    "
    DF = DF & "Database Access
    "
    Case ".gif", ".jpg"
    FP = FP & Nome_File & "
    "
    DF = DF & "Immagine GIF/JPEG
    "
    Case ".inc"
    FP = FP & Nome_File & "
    "
    DF = DF & "File di inclusione
    "
    Case ".tmp"
    FP = FP & Nome_File & "
    "
    DF = DF & "File temporaneo
    "
    Case Else
    FP = FP & Nome_File & "
    "
    DF = DF & "
    "

    End Select
    Next
    %>
    <FONT FACE="Arial" SIZE=2>
    <%If Numero_File = 0 then%>
    Nella directory corrente non sono presenti file.
    <%ElseIf Numero_File = 1 then%>
    E' stato trovato un solo file:<HR>
    <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
    <TR>
    <TD ALIGN=LEFT><FONT FACE="Arial" SIZE=2><%=FP%></FONT></TD>
    <TD ALIGN=LEFT><FONT FACE="Arial" SIZE=2><%=DF%></FONT></TD>
    </TR>
    </TABLE>
    <%Else%>
    Sono stati trovati <%=Numero_File%> File:<HR>
    <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%>
    <TR>
    <TD ALIGN=LEFT><FONT FACE="Arial" SIZE=2><%=FP%></FONT></TD>
    <TD ALIGN=LEFT><FONT FACE="Arial" SIZE=2><%=DF%></FONT></TD>
    </TR>
    </TABLE>
    <%End If%>

    index.asp

    <%
    ' Reperimento variabili
    Percorso = Request.QueryString("percorso")
    If Percorso <> "" then
    Link_1 = "percorso.asp?percorso=" & Percorso
    Link_2 = "directory.asp?percorso=" & Percorso
    Link_3 = "file.asp?percorso=" & Percorso
    Else
    Link_1 = "percorso.asp"
    Link_2 = "directory.asp"
    Link_3 = "file.asp"
    End If
    %>
    <FRAMESET ROWS="10%,* " FRAMEBORDER=0 BORDER=0 NORESIZE>
    <FRAME NAME="percorso" SRC="<%=Link_1%>">
    <FRAMESET COLS="25%,* " FRAMEBORDER=0 BORDER=0 NORESIZE>
    <FRAME NAME="directory" SRC="<%=Link_2%>">
    <FRAME NAME="file" SRC="<%=Link_3%>">
    </FRAMESET>
    </FRAMESET>

    *qui tolgo i frame per inserire delle tabelle

    percorso.asp

    <%
    ' Verifica il valore del parametro "Percorso"

    Percorso = Request.QueryString("percorso")
    %>
    <FONT FACE="Arial" SIZE=2><%=Percorso%></FONT>

    Questo invece e' il leggimi allegato:


    ================================================== ========

    Informazioni aggiuntive sul materiale allegato
    all'articolo "Un esplora risorse in ASP"
    di Michele Mariotti
    http://www.ASPItalia.com/articoli/esplora_risorse.asp

    ================================================== ========

    Come utilizzare gli esempi
    Copiare tutti i files in una virtual directory del proprio server
    web (es /esplora). Quindi lanciare http://127.0.0.1/esplora/directory.asp.

    Responsabilitā limitata
    ASPItalia e Michele Mariotti non sono responsabili per imprecisioni, errori o
    omissioni contenuti negli esempi, nč per danni materiali o morali derivanti
    dall'uso degli esempi

    Proprietā
    Gli esempi sono di proprietā ESCLUSIVA di ASPItalia. E' vietata la copia o la
    diffusione senza il permesso scritto di ASPItalia.

    ================================================== ========

    ASPItalia - La guida italiana a Windows NT (e non solo)
    http://www.ASPItalia.com/index.asp?mariotti

    ================================================== ========

    Grazie mille!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Non posso credere che fra tanta gente competente nessuna sappia dare una risposta a questo quesito!!!

  3. #3
    Originariamente inviato da dreaman74
    Non posso credere che fra tanta gente competente nessuna sappia dare una risposta a questo quesito!!!
    rileggiti il regolamento del forum. nessuno č tenuto a risponderti.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Effettivamente da nuovo utente ho commesso qualche errore e chiedo venia. Sicuramente quelle liste lunghe di script possono creare confusione e ho dimenticato di inserire i tag .

    Comunque ho risolto... utilizzando uno script che visualizza i file all'interno di una determinata cartella. Ho creato vari file .asp che puntano a cartelle diverse ed in seguito creato un database contenente tutti questi file con riferimento alle cartelle.

    Spero che questa soluzione, da principiante, sia comunque funzionale.

  5. #5
    te ne bastava una a cui passavi il nome della cartella da leggere e poi il path di partenza dello script lo inizializzavi con

    codice:
    path=server.mappath(request.querystring("nome_cartella"))

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    spiego bene la situazione:
    Ci sono tre cartelle AUDIO, VIDEO, IMMAGINI

    Vorrei visualizzare queste tre cartelle (creando una tabella di due celle) e poi visualizzare i file di questa cartella.
    CELLA 1 = cartella
    CELLA 2 = cartella

    Visto che si tratta di sole tre cartelle il problema di implementare gli spazi manualmente non sussiste ma se ne dovessi avere tante ho pensato ad un database e ed uno script che richiama le varie cartelle memorizzate come indirizzi nei record.

    Ripeto essendo un neofita, ti posto lo script per la visualizzazione, puoi indicarmi come fare per ovviare al database avendo piu' cartelle?

    ecco il codice:

    <%

    Dim objFso, objFolder, objFiles, strFolder, strFile
    strPath = "fileaudio/"

    Set objFso = Server.CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFso.GetFolder(Server.MapPath(strPath))
    Set objFiles = objFolder.Files

    For Each strFile in objFiles%>
    [img]../gif/download_audio.gif[/img]
    <%Response.Write(strFile.name & " - " & "dimensione:" & strFile.Size & " byte" & "
    ")
    Next

    Set objFso = Nothing
    Set objFolder = Nothing
    Set objFiles = Nothing

    %>

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Piccolo problema a cui non ho pensato!!! Avendo file .asp con stesse variabili e caricandoli tutti nella stessa pagina, ovviamente, succede un casino: non funziano una m.....a

    giustmante per leggere le tre sottocartelle, o quante ne sono, posso modificare lo script della proprietā .Files con la proprietā .SubFolders

    E dopo settando la variabile objFiles come faccio a far corrispondere ad ogni sottocartella i file corrispondenti ad esse. Devo inglobare il tutto all'interno del ciclo For Each ... Next?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Ho modificato lo script in questo modo:
    codice:
    <%
    Ma sicuramente c'e' qualche errore, dove sbaglio?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Ecco lo script, modificato:

    <%

    Dim objFso, objFolder, objSubFolders, objFiles, strFolder, strSubFolder, strFile
    strPath = "download/"

    Set objFso = Server.CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFso.GetFolder(Server.MapPath(strPath))
    Set objSubFolders = objFolder.SubFolders
    Set objFiles = objFolder.Files

    For Each strSubFolder in objSubFolders
    Response.Write( strSubFolder.name ) & "
    "

    For Each strFile in objFiles
    Response.Write(strFile.name & "
    ")

    Next
    Next

    Set objFso = Nothing
    Set objFolder = Nothing
    Set objSubFolders = Nothing

    %>

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Ho risolto ho inserito all'interno del ciclo strFolder un'altro ciclo nidificato che legge i file di quella sottocartella ad ogni ciclo quindi per ogni subfolder. Appena lo semplifico, ovvero elimino tutti i layout di pagina TABELLE, CSS, ecc lo invio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.