Quali sono i modi per fare in modo che un collegamento html apra una cartella


106

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 è accessibile da qualsiasi luogo. Probabilmente sono sicuro che non ci sia un modo semplice per farlo, ma forse mi sbaglio?


4
Ho risposto di seguito; questo è un requisito comune delle applicazioni web aziendali che è reso quasi impossibile da una sicurezza fuorviante (dovrebbe essere possibile abilitare i collegamenti ai file nelle pagine http affidabili). Ho solo testato ampiamente su Windows.
Andrew Duffy,

Risposte:


107

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

  • Internet Explorer funzionerà se il collegamento è un percorso UNC convertito ( file://server/share/folder/).
  • Firefox funzionerà se il collegamento è nella sua forma alterata utilizzando cinque barre ( file://///server/share/folder) e l'utente ha disabilitato la restrizione di sicurezza sui file:collegamenti in una pagina servita su HTTP . Per fortuna IE accetta anche il modulo di collegamento alterato.
  • Opera, Safari e Chrome non possono essere convinti ad aprire un file:collegamento in una pagina servita tramite HTTP.

4
in IE solo se il percorso UNC e il sito web contenente il collegamento si trovano nello stesso dominio, cioè solo nella intranet.
Stefan Steiger,

4
Penso che questo non sia più corretto: le versioni più recenti di IE sembrano bloccare questo comportamento proprio come Chrome / Safari / ecc.
ZeekLTK

1
L'ho appena provato in IE 11 e puoi infatti aprire un file locale senza scaricarlo (come aprire un percorso di file già esistente). Questo ancora non esiste in Chrome.
Hohohodown

4
Puoi farlo funzionare in Chrome tramite l' estensione Chrome di LocalLinks . Grazie a questa risposta StackOverflow
Zach Johnson

@ Andrew Duffy, c'è qualche tipo di documentazione che dice che Google Chrome sta bloccando questo comportamento? Vorrei saperne di più su questo
gioco di

7

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


4

assicurati che i permessi della tua cartella siano impostati in modo che sia consentito un elenco di directory, quindi punta semplicemente il tuo ancoraggio a quella cartella usando chmod 701 (che potrebbe essere rischioso) per esempio

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

assicurati di non avere index.html alcun file di indice su quella directory


Questa risposta funziona. La parte "elenco di directory consentito" è molto importante. Se non è consentito, puoi abilitarlo ma è diverso per ogni applicazione server.
Travis

3

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

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

Collegati alla directory virtuale dalla tua pagina web (es. Http: // yoursite / yourvirtualdir / ) e questo aprirà una visualizzazione della directory nel browser web.

* È possibile consentire i permessi di scrittura sulla directory virtuale per consentire agli utenti di aggiungere file ma non provarlo e presumere che i permessi di rete sovrascriveranno questa impostazione.


Ciò è rilevante oggi, poiché Chrome e le versioni più recenti di IE bloccheranno l'accesso alle risorse file: // locali da pagine Web non file. Inoltre, questo può essere impostato per essere eseguito in IIS Express, sebbene debba essere aggiunto ed eseguito manualmente.
Schmuli


1

Puoi anche copiare l'indirizzo del link e incollarlo in una nuova finestra per aggirare la sicurezza. Funziona in Chrome e Firefox, ma potresti dover aggiungere barre in Firefox.


1

Un po 'tardi per la festa, ma ho dovuto risolverlo da solo di recente, anche se leggermente diverso, potrebbe comunque aiutare qualcuno con circostanze simili alle mie.

Sto usando xampp su un laptop per eseguire un'app del sito Web puramente locale su Windows. (Un ambiente molto specifico che conosco). In questo caso, utilizzo un collegamento html a un file php ed eseguo:

shell_exec('cd C:\path\to\file');
shell_exec('start .');

Si apre una finestra di Esplora risorse di Windows locale.


1
Promettente, ma quando lo eseguo in Firefox la scheda si blocca. (Sembra che stia agitando la sessione o qualcosa del genere, perché posso accedere ad altri siti, ma questo sito sembra essere bloccato - anche in altre schede!)
Stephen R

L'ho appena testato in Firefox, per me funziona, ma non riesco a specificare la cartella in cui aprirlo, si apre solo nella directory principale del file php.
Lucas Taulealea

0

Spero che un giorno possa aiutare qualcuno. Stavo facendo un piccolo POC e mi sono imbattuto in questo. Un pulsante, su Fare clic per visualizzare il contenuto della cartella. Di seguito è riportato l'HTML,

<input type=button onClick="parent.location='file:///C:/Users/' " value='Users'>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.