web-dev-qa-db-fra.com

obtenir le nom de fichier d'un téléchargement de fichier dans un document via javascript

var fu1 = document.getElementById("FileUpload1");

comment puis-je obtenir le nom de fichier du contrôle fileupload avec id FileUpload1

24
Mishigen

Essayez la propriété value, comme ceci:

var fu1 = document.getElementById("FileUpload1");
alert("You selected " + fu1.value);

[~ # ~] note [~ # ~] : Il ressemble à FileUpload1 est un contrôle FileUpload côté serveur ASP.Net.
Si c'est le cas, vous devriez obtenir son ID en utilisant la propriété ClientID , comme ceci:

var fu1 = document.getElementById("<%= FileUpload1.ClientID %>");
35
SLaks

Dans google chrome element.value retourne le nom + le chemin, mais un faux chemin. Ainsi, pour mon cas, j'ai utilisé l'attribut name sur le fichier comme ci-dessous:

function getFileData(myFile){
   var file = myFile.files[0];  
   var filename = file.name;
}

c'est l'appel de la page:

<input id="ph1" name="photo" type="file" class="jq_req" onchange="getFileData(this);"/>
34
vanessen

Pour obtenir uniquement le nom du fichier téléchargé, utilisez ceci,

fake_path=document.getElementById('FileUpload1').value
alert(fake_path.split("\\").pop())

FileUpload1 la valeur contient un faux chemin, que vous ne voulez probablement pas, pour éviter d'utiliser le dernier élément de fractionnement et de pop de votre fichier.

3

Essayez document.getElementById("FileUpload1").value cette valeur doit avoir un chemin d'accès pour un fichier à télécharger, il suffit de supprimer tous les répertoires de cette valeur et vous aurez un nom de fichier.

3
RaYell

RaYell, vous n'avez pas besoin d'analyser la valeur renvoyée. document.getElementById("FileUpload1").value renvoie uniquement le nom de fichier avec l'extension. Cela m'a été utile car je voulais copier le nom du fichier à télécharger dans une zone de saisie appelée "titre". Dans mon application, le fichier téléchargé est renommé en index généré par la base de données backend et le titre est stocké dans la base de données.

3
DavidHyogo

En utilisant du code comme celui-ci dans un formulaire, je peux capturer le nom du fichier de téléchargement source d'origine, le copier dans un deuxième champ de saisie simple. Cela permet à l'utilisateur de fournir un autre nom de fichier de téléchargement dans la demande de soumission, car le nom de fichier de téléchargement de fichier est immuable.

    <input type="file" id="imgup1" name="imagefile">
      onchange="document.getElementsByName('imgfn1')[0].value = document.getElementById('imgup1').value;">
    <input type="text" name="imgfn1" value="">
2
rickatech

Essayer

var fu1 = document.getElementById("FileUpload1").value;
2
Adriaan Stander