2010-01-27 17 views
6

Ho un piccolo sistema php che ho creato per me. Questo sistema contiene alcuni documenti di file .doc e .docx. Voglio poterli aprire direttamente dal browser e non scaricarli.Aprire un file diretto sul disco rigido da firefox (file: ///)

Ho creato un collegamento: <a href="file:///c:/mysite/myfile.docx">myfile</a> Ma FireFox non apre il collegamento. Mentre href="http://localhost/myfile.docx" funziona correttamente, mi offre di scaricare il file.

Qualche idea come posso farlo? Forse cambia qualcosa nelle opzioni di firfox/nelle impostazioni di sicurezza? E se ci sei, c'è qualche possibilità di farlo in IE8?

Grazie.

+0

si tratta di una questione di programmazione? ?? –

+0

Mi sembra che tu abbia scelto la tecnologia assolutamente sbagliata per fare ciò che vuoi. Prova qualcosa di un po 'più orientato allo sviluppo del desktop. – NotMe

+0

Sono qui per la stessa domanda, perché fino a poco tempo fa ero in grado di fare ciò che era richiesto qui, la soluzione era seguire le istruzioni su questa pagina: http: //kb.mozillazine.org/Links_to_local_pages_don't_work#Disabling_the_Security_Check in breve, dovrai creare un file user.js con un paio di modifiche alla configurazione. Suppongo che queste politiche siano state ritenute abbastanza pericolose da non poterle impostare usando about: config. Beh, quello era ciò che sembrava solo un paio di mesi fa, nell'ultima settimana ho provato e ora ho lo stesso comportamento del file locale di chrome ... – Quaternion

risposta

5

anche se io continuo a pensare che è una questione di programmazione, è stato risposto qui: https://superuser.com/questions/103026/open-a-direct-file-on-the-hard-drive-from-firefox-file

Sia Firefox e IE8 sostengono la File URI scheme.

Ecco alcuni esempi validi per sistemi Windows, riferendosi alla stessa file C: \ WINDOWS \ clock.avi

file: // localhost/c | /WINDOWS/clock.avi
file: /// C | /WINDOWS/clock.avi
file: // localhost/c: /WINDOWS/clock.avi
file: /// C: /WINDOWS/clock.avi

Mentre l'ultimo è il più evidente e leggibile dall'uomo, il primo è il più completo e corretto.

A quanto pare (dallo stesso url):

Mozilla browser si rifiutano di seguire gli URL dei file su una pagina che ha recuperato con il protocollo HTTP.

ma:

Mozilla browser può essere configurato per ignorare questa limitazione di sicurezza come indicato nella Mozillazine di "Links to Local Pages Don't Work".

1

Quale sintassi è stata utilizzata? La sintassi corretta per es. c:/path/to/file.ext sarebbe stato file:///c:/path/to/file.ext. Modifica: non più pertinente poiché OP ha modificato la sua domanda per includere la sintassi.

Si noti che questo non funziona affatto se il file è memorizzato sulla macchina server che a sua volta è una fisicamente diversa macchina rispetto alla macchina client (in cui viene eseguito il browser).

+0

Ho aggiornato la mia domanda per mostrare che ho usato questa sintassi: 'file: /// c:/path/to/file.ext'. – aviv

+0

Funziona bene qui. Il tuo problema sta da qualche altra parte. O il file non è lì dove pensi che sia, o Firefox in realtà sta bloccando con questo. Se puoi assicurarti che sia il caso, considera di passare a superuser.com poiché questo non ha più nulla a che fare con la programmazione. – BalusC

2

Purtroppo non è possibile accedere ai file locali in Firefox a causa di restrizioni di sicurezza. Per quanto ne so (ho chiesto qui ripetute volte io stesso) non è nemmeno possibile consentire selezionare i siti attraverso un'impostazione di configurazione o simili.

C'è una soluzione alternativa (ponenzialmente pericolosa e da maneggiare con cura), è possibile registrare un protocollo personalizzato come indicato in this question.

0

Le restrizioni di sicurezza sono un grosso problema quando si tenta di accedere a un file al di fuori del progetto. Quello che vorrei raccomandare (se stai usando IIS 7+), è quello di creare una directory virtuale nella cartella che contiene i tuoi documenti sull'unità C. Quindi è possibile accedere ai file dall'unità C utilizzando il nome VP e l'host/localhost verrà incluso nell'url anziché nello "file:///".

Tuttavia, se si utilizza IIS Express, sarà necessario aggiungere manualmente la directory virtuale aggiornando il file "applicationhost.config". Dai un'occhiata a questo link per maggiori dettagli su come configurarlo.

http://bhagirath-j-patel.blogspot.com/

Spero che questo aiuti.

0

Il mio codice di lavoro per aprire file caricati localmente tramite Firefox (51.0) e l'attuale Internet Explorer (11).

$pfad = trim(strip_tags(stripslashes(urldecode($_REQUEST['pfad'])))); 
$datei = trim(strip_tags(stripslashes(urldecode($_REQUEST['file'])))); 
exec ('start c:\\WINDOWS\\system32\\explorer.exe /select /seperate /n, /e, '.str_replace('/','\\',$pfad).utf8_decode($datei)); 

salvati come open.php

"Pfad" è un sentiero sotto la Webroot locale (nella mia cartella cliente caso) mentre "file" è - ovviamente - il file che voglio aprire .

mi chiamano in questo modo: ... href = "? Open.php pfad = <My_Path> & file = <the_file>"

dove entrambi i parametri sono urlencoded

Problemi correlati