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
risposta
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 onfile:
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.
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. –
Penso che questo non sia più corretto - le nuove versioni di IE sembrano bloccare questo comportamento proprio come Chrome/Safari/etc. – ZeekLTK
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
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
Questa risposta funziona. La parte "elenco elenchi consentiti" è molto importante. Se non è consentito, è possibile attivarlo ma è diverso per ogni applicazione server. – Travis
L'URL file://[servername]/[sharename]
dovrebbe aprire una finestra di esplorazione nella cartella condivisa sulla rete.
non funziona in chrome, funziona in IE – Muflix
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.
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
non funziona in Chrome, ma questo altre risposte suggerisce una soluzione tramite un plugin:
è 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.
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. –