2009-05-13 8 views
71

Devo consentire agli utenti di un'applicazione di aprire una cartella facendo clic su un collegamento all'interno di una pagina web. Il percorso della cartella si trova sulla rete ed è possibile accedervi da qualsiasi luogo. Sono probabilmente sicuro che non ci sia un modo semplice per farlo, ma forse mi sbaglio?Quali sono i modi per fare in modo che un collegamento html apra una cartella

+3

Ho risposto di seguito; questo è un requisito comune delle applicazioni Web aziendali reso quasi impossibile dalla sicurezza errata (dovrebbe essere possibile abilitare i collegamenti ai file nelle pagine http attendibili). Ho provato solo ampiamente su Windows. –

risposta

85

Vuoi aprire una cartella condivisa in Windows Explorer? È necessario utilizzare un collegamento file:, ma ci sono avvertimenti:

  • Internet Explorer funzionerà se il collegamento è un percorso UNC convertito (file://server/share/folder/).
  • Firefox funzionerà se il collegamento è nella propria forma deformata utilizzando cinque barre (file://///server/share/folder) e l'utente ha disabled the security restriction on file: links in a page served over HTTP. Fortunatamente, IE accetta anche il modulo di link maciullato.
  • Opera, Safari e Chrome non possono essere convinti di aprire un collegamento file: in una pagina pubblicata su HTTP.
+4

in IE solo se il percorso UNC e il sito Web che contiene il collegamento si trovano nello stesso dominio, vale a dire solo nella intranet. –

+4

Penso che questo non sia più corretto - le nuove versioni di IE sembrano bloccare questo comportamento proprio come Chrome/Safari/etc. – ZeekLTK

+1

Ho appena provato questo in IE 11 e puoi infatti aprire un file locale senza scaricarlo (come in un percorso di file già aperto). Questo ancora non esiste in chrome. – Hohohodown

4

assicurarsi che le autorizzazioni per le cartelle sono impostate in modo tale che un elenco di directory è consentito poi basta puntare la vostra ancora di quella cartella utilizzando chmod 701 (che potrebbe essere rischioso però) ad esempio

<a href="./downloads/folder_i_want_to_display/" >Go to downloads page</a> 

assicurarsi che si non ha index.html alcun indice su quella directory

+0

Questa risposta funziona. La parte "elenco elenchi consentiti" è molto importante. Se non è consentito, è possibile attivarlo ma è diverso per ogni applicazione server. – Travis

4

L'URL file://[servername]/[sharename] dovrebbe aprire una finestra di esplorazione nella cartella condivisa sulla rete.

+1

non funziona in chrome, funziona in IE – Muflix

2

L'utilizzo del file: ///// non funziona se le impostazioni di sicurezza sono impostate su un livello anche moderato.

Se si desidera solo che gli utenti siano in grado di scaricare/visualizzare i file * che si trovano su una rete o condividere, è possibile configurare una directory virtuale in IIS. Nella scheda Proprietà assicurati che sia selezionata la voce "Una condivisione situata su un altro computer" e "Connetti come ..." è un account che può vedere il percorso della rete.

Collegamento alla directory virtuale dalla pagina Web (ad esempio http://yoursite/yourvirtualdir/) e questo aprirà una visualizzazione della directory nel browser web.

* È possibile consentire autorizzazioni di scrittura sulla directory virtuale per consentire agli utenti di aggiungere file ma non di averlo provato e presupporre che le autorizzazioni di rete annullino questa impostazione.

+0

Questo è rilevante oggi, poiché le versioni Chrome e successive di IE bloccheranno l'accesso al file locale: // risorse da pagine Web non file. Inoltre, può essere configurato per l'esecuzione in IIS Express, sebbene debba essere aggiunto ed eseguito manualmente. – Schmuli

1

è anche possibile copiare l'indirizzo del link e incollarlo in una nuova finestra per aggirare la sicurezza. Funziona in chrome e firefox ma potresti dover aggiungere delle barre in firefox.