Eu usei isso:
$('input[type=file]').val()
para selecionar o nome do arquivo, mas ele retornou o caminho completo, como em "C: \ fakepath \ filename.doc". A parte "fakepath" estava realmente lá - não tenho certeza se deveria estar, mas esta é minha primeira vez trabalhando com o nome de arquivo dos uploads de arquivos.
Como posso obter o nome do arquivo (filename.doc)?
javascript
jquery
get
filenames
marky
fonte
fonte
C:\fakepath\
que sites mal-intencionados não possam usar o javascript para coletar informações sobre a estrutura de diretórios do seu computador.Respostas:
ou você pode simplesmente fazer (porque sempre
C:\fakepath
é adicionado por motivos de segurança):fonte
Fakepath
com um F maiúsculo?Você só precisa fazer o código abaixo. O primeiro [0] é para acessar o elemento HTML e o segundo [0] é para acessar o primeiro arquivo do upload do arquivo (eu incluí uma validação no caso de não haver arquivo):
fonte
O Chrome retorna
C:\fakepath\...
por motivos de segurança - um site não deve obter informações sobre o seu computador, como o caminho para um arquivo no seu computador.Para obter apenas a parte do nome do arquivo de uma string, você pode usar
split()
...jsFiddle .
... ou uma expressão regular ...
jsFiddle .
... ou
lastIndexOf()
...jsFiddle .
fonte
Obtenha trabalho de caminho com todos os sistemas operacionais
Exemplo
Ambos retornam
fonte
var filename = $('input[type=file]').val().replace(/.*(\/|\\)/, '');
está usando jQuery.Aqui está como eu faço, funciona muito bem.
No seu HTML, faça:
Em seguida, no seu arquivo js, crie uma função simples:
Se você estiver criando vários arquivos, também poderá conseguir a lista fazendo um loop sobre isso:
fonte
talvez alguma adição para evitar o caminho falso:
fonte
Que tal algo como isso?
fonte
Tem que ser jquery? Ou você pode simplesmente usar o nativo do JavaScript
yourpath.split("\\")
para dividir a string em uma matriz?fonte
Obtenha o primeiro arquivo do controle e, em seguida, obtenha o nome do arquivo, ele ignorará o caminho do arquivo no Chrome e também fará a correção do caminho para os navegadores IE. Ao salvar o arquivo, você deve usar o
System.io.Path.GetFileName
método para obter o nome do arquivo apenas para navegadores IEfonte
fonte
fonte
Essa alternativa parece a mais apropriada.
fonte
Aqui você pode ligar assim Deixe este é o meu controle de arquivo de entrada
Agora, aqui está o meu Jquery, que é chamado depois que você seleciona o arquivo
fonte
Também podemos removê-lo usando
match
fonte