Como obter o caminho completo do arquivo enquanto seleciona o arquivo usando <input type=‘file’>
<input type="file" id="fileUpload">
<script type="text/javascript">
function getFilePath(){
$('input[type=file]').change(function () {
var filePath=$('#fileUpload').val();
});
}
</script>
mas o filePath var contém o only name
arquivo selecionado, não o arquivo full path
.
Eu procurei na net, mas parece que, por razões de segurança, os navegadores (FF, chrome) apenas fornecem o nome do arquivo.
Existe alguma outra maneira de obter o caminho completo do arquivo selecionado?
javascript
jquery
file-upload
filepath
Yogesh Pingle
fonte
fonte
Respostas:
Por motivos de segurança, os navegadores não permitem isso, ou seja, o JavaScript no navegador não tem acesso ao sistema de arquivos; no entanto, usando a API de arquivos HTML5, apenas o Firefox fornece uma
mozFullPath
propriedade, mas se você tentar obter o valor, ele retornará uma string vazia:http://jsfiddle.net/SCK5A/
Então não perca seu tempo.
editar: se você precisar do caminho do arquivo para ler um arquivo, poderá usar a API FileReader . Aqui está uma pergunta relacionada ao SO: visualize uma imagem antes de ser carregada.
fonte
Tente isto:
Ele fornecerá um caminho temporário, não o caminho exato; você pode usar esse script se desejar mostrar as imagens selecionadas, como neste exemplo do jsfiddle (tente selecionar imagens e outros arquivos): -
JSFIDDLE
Aqui está o código: -
HTML: -
JS: -
Não é exatamente o que você estava procurando, mas pode ser que possa ajudá-lo em algum lugar.
fonte
Você não pode fazer isso - o navegador não permitirá isso por questões de segurança.
E outro
Você perdeu
);
isso no final da função de evento de alteração.Além disso, não crie uma função para o evento change, apenas use-a como abaixo,
fonte
D
diretório, mas o valor está chegandoC:\fakepath\test.xls
Você não pode. A segurança impede você de saber algo sobre o sistema de arquivamento do computador cliente - ele pode até não ter um! Pode ser um MAC, um PC, um Tablet ou uma geladeira com acesso à Internet - você não sabe, não pode saber e não saberá. E permitir que você tenha o caminho completo pode fornecer algumas informações sobre o cliente - principalmente se for uma unidade de rede, por exemplo.
Na verdade, você pode obtê-lo sob condições específicas, mas requer um controle ActiveX e não funcionará em 99,99% das circunstâncias.
Você não pode usá-lo para restaurar o arquivo para o local original de qualquer maneira (como você não tem absolutamente nenhum controle sobre onde os downloads são armazenados, ou mesmo se eles são armazenados); portanto, na prática, isso não é muito útil para você.
fonte
Você quis dizer isso?
fonte
Você pode usar o código a seguir para obter um URL local de trabalho para o arquivo carregado:
fonte
Uma observação interessante: embora isso não esteja disponível na Web, se você estiver usando JS no Electron, poderá fazê-lo.
Usando a entrada de arquivo HTML5 padrão, você receberá um extra
path
propriedade nos arquivos selecionados, contendo o caminho real do arquivo.Documentos completos aqui: https://github.com/electron/electron/blob/master/docs/api/file-object.md
fonte
Você pode, se carregar uma pasta inteira for uma opção para você
evento de alteração conterá:
fonte
você nunca deve fazer isso ... e acho que tentar nos navegadores mais recentes é inútil (pelo que sei) ... todos os navegadores mais recentes, por outro lado, não permitirão isso ...
alguns outros links pelos quais você pode acessar, para encontrar uma solução alternativa, como obter o valor no servidor, mas não no lado do cliente (javascript)
Caminho completo da entrada do arquivo usando o jQuery
Como obter o caminho do arquivo do formulário de entrada HTML no Firefox 3
fonte
elemento de arquivo tem e chamada de matriz
files
que contém todas as coisas necessárias que você precisafonte
Você pode obter o caminho completo do arquivo selecionado para carregar apenas pelo IE11 e MS Edge.
fonte