Téléchargement de fichier jQuery en arrière-plan
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)
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"; });
$("#uploadform").ajaxForm(function () { window.location = "/some-other-part"; });
#de, #en, arrière-plan, fichier, jQuery, téléchargement