Você precisa usar o file:///
protocolo (sim, são três barras) se desejar vincular a arquivos locais.
<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>
Eles nunca abrirão o arquivo em seus aplicativos locais automaticamente. É por razões de segurança que abordarei na última seção. Se abrir, será aberto apenas no navegador. Se o seu navegador puder exibir o arquivo, ele será exibido; caso contrário, provavelmente perguntará se você deseja fazer o download do arquivo.
As versões modernas de muitos navegadores (por exemplo, Firefox e Chrome) se recusam a passar do protocolo http para o protocolo de arquivo para evitar comportamentos maliciosos. Você precisará abrir sua página da Web localmente usando o protocolo de arquivo, se desejar fazer essas coisas.
Por que fica preso sem file:///
?
A primeira parte de uma URL é o protocolo. Um protocolo são algumas letras, depois dois pontos e duas barras. HTTP://
e FTP://
são protocolos válidos; C:/
não é e tenho certeza de que nem sequer se parece com um.
C:/
também não é um endereço da web válido. O navegador pode assumir que deve estar http://c/
com uma porta em branco especificada, mas isso falhará.
Seu navegador pode não assumir que está se referindo a um arquivo local. Há poucas razões para fazer essa suposição, porque sites públicos geralmente não tentam vincular-se aos arquivos locais das pessoas.
Portanto, se você deseja acessar arquivos locais: diga para usar o protocolo de arquivos.
Por que três barras?
Porque faz parte do esquema de URI do arquivo . Você tem a opção de especificar um host após as duas primeiras barras. Se você pular a especificação de um host, apenas assumirá que você está se referindo a um arquivo em seu próprio PC. Isso significa que file:///C:/etc
é um atalho para file://localhost/C:/etc
.
Esses arquivos ainda serão abertos no seu navegador e isso é bom
Seu navegador responderá a esses arquivos da mesma maneira que eles responderiam ao mesmo arquivo em qualquer lugar da Internet. Esses arquivos não serão abertos no seu manipulador de arquivos 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 local do arquivo.
Isso é extremamente bom para sua segurança.
Os sites do seu navegador não podem interagir muito bem com o seu sistema operacional. Se um site bom poderia dizer a sua máquina para abrir lecture.mp4 em VLC.exe , um site malicioso poderia dizer o mesmo para abrir virus.bat em CMD.exe . Ou pode apenas dizer à sua máquina para executar alguns arquivos Uninstall.exe ou abrir o File Explorer um milhão de vezes.
Isso pode não ser conveniente para você, mas a segurança do HTML e do navegador não foi realmente projetada para o que você está fazendo. Se você quer ser capaz de abrir lecture.mp4 em VLC.exe considerar escrever um aplicativo de desktop em vez.
Not allowed to load local resource
erro)Se você estiver executando o IIS no seu PC, poderá adicionar o diretório que você está tentando acessar 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". Nome da pasta virtual. Aponte a pasta virtual para o local da pasta no seu PC local. Você também precisa fornecer credenciais com privilégios para acessar a pasta específica, por exemplo. HOSTNAME \ nome de usuário e senha. Depois disso, você pode acessar o arquivo na pasta virtual como qualquer outro arquivo no seu site.
http://sitename.com/virtual_folder_name/filename.fileextension
A propósito, isso também funciona com o Chrome que, de outra forma, não aceita o arquivo de protocolo de arquivo: //
Espero que isso ajude alguém :)
fonte
Janky na melhor das hipóteses
clique com o botão direito do mouse, selecione a opção "copiar local" e cole no URL.
fonte
de volta a 2017:
use URL.createObjectURL (arquivo) para criar um link local para o sistema de arquivos selecionado pelo usuário;
não se esqueça de liberar memória usando URL.revokeObjectURL ()
fonte
Eu tenho uma maneira e trabalho assim:
fonte