web-dev-qa-db-fra.com

API de fichier HTML5 avec chemin du nom de fichier

J'ai le code suivant pour lire le fichier via l'API de fichier HTML5. J'ai téléchargé le fichier via Input = file element. Voici le bloc de code.

<input type="file" id="files" name="file" />
<button id="readFile">Read File</button>
<output id="content"></output>

<script>

function readFile() 
{
    /* Get the reference of the inpout element. */
    var files = document.getElementById('files').files;
    console.log(files);

    if (!files.length) 
    {
      alert('Please select a file!');
      return;
    }

    /* Reading the first file selected. You can process other files similarly in loop. */
    var file = files[0];

    /* Instantiate the File Reader object. */
    var reader = new FileReader();

    /* onLoad event is fired when the load completes. */
    reader.onload = function(event) {
        document.getElementById('content').textContent = event.target.result;      
    };

    /* The readAsText method will read the file's data as a text string. By default the string is decoded as 'UTF-8'. */
    reader.readAsText(file);
}

document.getElementById('readFile').addEventListener('click', function(event) {
     readFile();
  }, false);

</script>

Que se passe-t-il si je ne souhaite pas télécharger le fichier et fournir le chemin de fichier via l'élément input = type à HTML5: File API pour lire le fichier et l'afficher?

Je sais que l’API HTML5: File ne prend pas directement le chemin du fichier. Y-a-t'il une solution ?

20
Ashwin Hegde

Pour des raisons de sécurité, les navigateurs n'autorisent pas l'accès aux systèmes de chemins d'accès et de fichiers absolus directement vers Javascript. Vous ne pouvez obtenir le nom du fichier qu'en appelant la fonction 'val ()' en javascript et rien de plus. 

Alors ne perdez pas votre temps.

18
Majid Kalkatechi

La dernière version de IE renvoie le chemin absolu complet de votre fichier dans la zone de texte. Vous voudrez peut-être utiliser: Var filePath = document.getElementById ("monFichier"). Value; .__ pour obtenir le chemin absolu

P.S. essayé uniquement sur IE 11

0
chaity