Téléchargement de fichier jQuery en arrière-plan

0112

Téléchargement de fichier jQuery en arrière-plan


Ma situation:

  • J’écris une application qui permet aux utilisateurs de télécharger de très gros fichiers. (Dans certains cas sur un réseau très lent)
  • Je voudrais permettre aux utilisateurs de démarrer le téléchargement d’un fichier, puis de parcourir d’autres parties de l’application / du site.

Ce que j’ai essayé:

J’ai essayé de créer un iframe caché sur la même page afin de créer un DOM séparé qui sera conservé lors de la redirection. J’allais initialement avoir l’entrée de fichier visible déclencher un onsubmit qui enverrait le fichier vers le DOM de l’iframe, puis le faire exécuter un téléchargement en utilisant le téléchargement de fichier jquery .

Cependant, pour des raisons de sécurité , javascript n’autorise pas le paramétrage par programmation d’une entrée fileupload. Cette approche a donc échoué.

Ce que je cherche:

Je suis à la recherche d’une sorte de plugin ou bibliothèque javascript / jQuery qui me permettra de garder les fichiers téléchargés en arrière-plan de mon application. (Ou mieux encore si vous pouviez me montrer comment le faire avec ce plugin ).

Critères:

  • Les téléchargements de fichiers doivent être:
    • Morceaux
    • Reprise
    • Capable de fonctionner en arrière-plan
    • Devrait être compatible avec Ruby on Rails 4 (en cas de problème)
Mohammed Joraid

Que diriez-vous de faire apparaître la page de téléchargement dans une fenêtre de navigateur distincte? À moins que votre application entière ne soit pilotée par ajax et que vous puissiez conserver le bloc de téléchargement de code, je ne suis pas sûr. J’espère que quelqu’un pourrait aider 🙂

Theraot

N’ont pas été testés, mais je soupçonne qu’il est possible de faire fonctionner le téléchargement tout en permettant à l’utilisateur de naviguer si nous capturons la demande dans un technicien de service. Oui, cette question concerne les travailleurs des services antérieurs, je remarque. Il n’y aura pas de plugins pour cela, à moins qu’ils ne soient pour un framework javascript qui inclut un travailleur de service, et non, jQuery ne le fait pas. Donc, cela devrait devenir une question pour StackOverflow (je veux dire, comment écrire un travailleur de service pour cela, pas quel framework l’a … quel framework a-t-il une question de ce côté, je me demande s’il y en a) .

Réponses


 Farid Nouri Neshat

Vous pouvez le faire avec ajaxForm facilement:

 <form id="uploadform"> <input type="file" id="fileupload" name="fileupload" /> <input type="submit" value="Upload!" /> </form> 

Ensuite, dans votre javascript, procédez comme suit:

 $("#uploadform").ajaxForm(); 

Si vous voulez faire quelque chose lorsque le téléchargement est terminé, vous pouvez simplement lui rappeler (par exemple, dans ce navigateur, accédez à un autre emplacement):

 $("#uploadform").ajaxForm(function () { window.location = "/some-other-part"; }); 
Mohammed Joraid

Que diriez-vous de ce qu’il a dit « et puis accédez à d’autres parties de l’application / du site ». ?

Farid Nouri Neshat

$("#uploadform").ajaxForm(function () { window.location = "/some-other-part"; });

Mohammed Joraid

Vous voulez dire qu’il pourrait continuer le téléchargement et naviguer vers d’autres pages à partir de la même fenêtre?

Farid Nouri Neshat

Non, je suis le code ci-dessus, il naviguera lorsque le téléchargement sera terminé

Mohammed Joraid

Eh bien, cela dépend de la personne qui a posé la question. Mais je ne pense pas que cela l’a aidé car il n’a obtenu que deux exigences, si vous lisez la deuxième: « Je voudrais permettre aux utilisateurs de commencer le téléchargement d’un fichier, puis de parcourir d’autres parties de l’application / du site. » Il voulait parcourir pendant le téléchargement, pas après.

 

#de, #en, arrière-plan, fichier, jQuery, téléchargement

 

wiki

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *