web-dev-qa-db-fra.com

Trouver la taille du fichier derrière le lien de téléchargement avec jQuery

Je me demandais s’il existait un moyen d’utiliser jQuery pour connaître la taille du fichier d’un PDF auquel je renvoie vers une page Web. 

Je veux faire en sorte qu'au survol du lien de téléchargement, une boîte modale apparaît indiquant la taille du fichier PDF. Je peux faire le deuxième bit, la seule chose que je voudrais savoir, c'est comment trouver la taille du fichier. Je ne sais pas si jQuery est capable de cela. Sinon, tant pis, je suppose ..

Bravo d'avance.

27
Seedorf

Je pense que c'est trop pour le côté client, mais je ne connais pas les détails de votre application, donc si vous supposez le faire avec jQuery ... vous pouvez faire une demande HEAD et regarder à l'en-tête Content-Length. Plus tôt, j'avais recommandé le plugin jqHead, mais après avoir essayé de l'utiliser, j'ai découvert qu'il était cassé.

Voici un exemple de travail qui ne dépend d'aucun plugin supplémentaire: http://Host.masto.com/~chris/so/jqhead.html

La viande en est très simple:

  var request;
  request = $.ajax({
    type: "HEAD",
    url: $("#url").val(),
    success: function () {
      alert("Size is " + request.getResponseHeader("Content-Length"));
    }
  });
47
masto

Voici un extrait de code permettant de trouver la taille du fichier en javascript sans accéder au serveur, si vous êtes sur le point de télécharger le fichier sur le serveur. 

Cette idée permet de limiter la taille du fichier avant de télécharger de gros fichiers sur le serveur.

<input type="file" id="loadfile" />
<input type="button" value="find size" onclick="findSize()" />
<script type="text/javascript">
    function findSize() {
        var fileInput = $("#loadfile")[0];
        alert(fileInput.files[0].size); // Size returned in bytes.
    }    
</script>
12
Sekar Ramamurthy

Dans la réponse ci-dessus, Chrome 21 et Safari 6 n'avaient pas de membre fileSize, mais avaient la taille. Utilisation:

fileInput.files [0] .size

0
Saeven

Si vous connaissez la taille du fichier au préalable, vous pouvez l'insérer dans l'attribut title du lien de téléchargement. Vous pouvez également utiliser jQuery pour afficher une fenêtre contextuelle personnalisée.

Dans le cas contraire, il est impossible d'obtenir uniquement la taille du fichier (longueur du contenu) d'une URL sans télécharger le contenu entier, autant que je sache.

0
Chetan Sastry

La seule façon pour moi de faire cela serait de créer un service Web qui vous renverrait la taille du fichier PDF. 

0
Corey Sunwold