Como posso criar um link para um arquivo local em uma página da web administrada localmente?

I'gostaria de ter um arquivo html que organizasse certos arquivos espalhados pelo meu disco rígido. Por exemplo, eu tenho dois arquivos com os quais eu gostaria de ter um link:

  • C:|Programsort.mw''.
  • "C:Videos "lecture.mp4

O problema é que I'gostaria que os links funcionassem como um atalho para o arquivo. I'já tentei o seguinte:

<a href="C:\Programs\sort.mw">Link 1</a>
<a href="C:\Videos\lecture.mp4">Link 2</a>

... mas o primeiro link não faz nada e o segundo link abre o arquivo em Chrome, não em VLC.

As minhas perguntas são:

  1. Existe alguma forma de ajustar o meu HTML para tratar os links como atalhos para os ficheiros?

  2. Se existe'não há uma maneira de ajustar o HTML, existem outras maneiras de fazer um link para arquivos espalhados pelo disco rígido?

Meu computador roda Windows 7 e meu navegador da web é o Chrome.

Solução

Você precisa utilizar o protocolo file:/// (sim, isso's três cortes) se você quiser fazer um link para arquivos locais.

<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>

Estes nunca abrirão o arquivo em suas aplicações locais automaticamente. That's por razões de segurança que I'll cobrirão na última seção. Se ele abrir, ele só abrirá no navegador. Se o seu navegador pode exibir o arquivo, ele irá, caso contrário, provavelmente irá perguntar se você quer baixar o arquivo.

Alguns navegadores, como as versões modernas do Chrome, até se recusam a passar do protocolo http para o protocolo de arquivo, então você'é melhor ter certeza que você abre isto localmente usando o protocolo de arquivo se você quiser fazer isto de todo.

Porque é que fica preso sem file:///?

A primeira parte de uma URL é o protocolo. Um protocolo é algumas letras, depois dois pontos e dois cortes. HTTP://eFTP://são protocolos válidos;C:/` is't e I'tenho quase certeza que não se assemelha'nem se parece com um.

C:/também é't um endereço web válido. O navegador pode assumir que's significa serhttp://c/` com uma porta em branco especificada, mas isso's vai falhar.

O seu navegador pode não assumir que's se refere a um arquivo local. Ele tem poucas razões para fazer essa suposição porque sites públicos normalmente não't tentam fazer um link para pessoas' arquivos locais.

Portanto, se você quiser acessar arquivos locais: diga-lhe para usar o protocolo de arquivo.

Porquê três cortes?

Porque ele's faz parte do esquema de arquivo URI. Você tem a opção de especificar um host após os dois primeiros cortes. Se você pular a especificação de um host, ele irá apenas assumir que você're se refere a um arquivo em seu próprio PC. Isto significa que file:///C:/etc é um atalho para file://localhost/C:/etc.

Estes ficheiros continuarão a abrir no seu browser e isso é bom

Seu navegador responderá a esses arquivos da mesma forma que eles'responderiam ao mesmo arquivo em qualquer lugar na internet. Estes ficheiros não irão abrir no seu manipulador de ficheiros padrão (por exemplo, MS Word ou VLC Media Player), e você não poderá fazer nada como pedir ao File Explorer para abrir o ficheiro's location.

**Isto é uma coisa extremamente boa para a sua segurança.

Os sites no seu navegador não podem interagir muito bem com o seu sistema operacional. Se um bom site poderia dizer à sua máquina para abrir lecture.mp4 em VLC.exe, um site malicioso poderia dizer para abrir virus.bat em CMD.exe. Ou poderia apenas dizer à sua máquina para executar alguns arquivos Uninstall.exe ou abrir o File Explorer um milhão de vezes.

Isto pode não ser conveniente para você, mas HTML e segurança do navegador foram't realmente projetados para o que você're está fazendo. Se você quer ser capaz de abrir lecture.mp4 em VLC.exe considere escrever uma aplicação desktop em seu lugar.

Comentários (6)

Se você estiver rodando IIS no seu PC você pode adicionar o diretório que você está tentando alcançar como um diretório virtual. Para fazer isso, clique com o botão direito do mouse no seu Site no ISS e pressione "Adicionar Diretório Virtual". Dê um nome à pasta virtual. Aponte a pasta virtual para a localização da sua pasta no seu PC local. Você também tem que fornecer credenciais que tenham privilégios para acessar a pasta específica, por exemplo, nome de usuário e senha. Depois disso, você pode acessar o arquivo na pasta virtual como qualquer outro arquivo do seu site.

http://sitename.com/virtual_folder_name/filename.fileextension

A propósito, isto também funciona com o Chrome que de outra forma não aceita o ficheiro-protocolo://

Espero que isto ajude alguém :)

Comentários (1)

Janky at best

<a href="file://///server/folders/x/x/filename.ext">right click </a></td>

e depois clique com o botão direito do rato, seleccione " copie localização" opção, e depois cole em url.

Comentários (1)