JQuery téléchargement de fichier avec l'Ajax
Je suis l'aide de John Culviner du grand fileDownload plugin pour produire une "veuillez patienter" lorsque mon utilisateur choisit de générer un rapport.
Lorsqu'un utilisateur clique sur un lien, j'envoie une requête ajax à mon PHP qui génère un fichier PDF sur le serveur. À ce point, je suis tenté de mettre à jour le lien dans mon gestionnaire de succès pour la fileDownload plugin.
J'ai peut-être l'approche de ce mal, mais voici mon code, toute aide est grandement appréciée.
$("body").on("click","##pdfLink", function(e){
$.fileDownload($(this).attr('href'), {
preparingMessageHtml: "Preparing your report, please wait...",
failMessageHtml: "There was a problem generating your report, please try again."
});
//Build our data string.
var strData = {method: "createPDF"};
//Send a request to build our XL file.
$.ajax({
url: '/pdf.php',
data: strData,
type: 'get',
dataType: 'json',
success: function(data) {
alert(data);
$("##pdfLink").attr("href","/pdf/"+data);
},
error: function(e) {
console.log(e);
}
});
return false;
e.preventDefault();
})
À ce point, lorsque je clique sur le lien modale s'affiche correctement avec le "Veuillez Patienter". Mon fichier ne se construit sur le serveur (Confirmé avec mon alerte dans mon gestionnaire de succès), et ma HREF est mis à jour. Cependant, le plugin n'invite pas l'utilisateur pour le téléchargement.
Merci!
OriginalL'auteur Jason Wells | 2012-06-22
Vous devez vous connecter pour publier un commentaire.
Avez-vous pas besoin d'appel ajax fonction en JS. Votre lien
<a href='yoursite.com/pdf.php'
identifier avec cette commande$(this).attr('href')
emplacement de votre serveur processus de pdf.EDIT:
De votre appel:
HTML:
Passage de paramètres avec cette commande
data: strData
dans fileDownload calll- Je changer pour faire appel. L'un des
<a href="**URL**
pour générer des premier et deuxième appel pour télécharger vos données.Désolé pour la réponse tardive, je vais donner un coup de cette mais pas encore tout à fait sûr que j'ai suivi. Si ça marche, je serai de retour à assurez-vous que vous êtes upvoted 🙂 Merci pour votre aide!
OriginalL'auteur Jones
Probablement , vous avez besoin pour démarrer le téléchargement ,après le lien de la référence sera reçu:
À moins que votre lien de référence n'est pas reçu, comment doit-votre "downloader" savoir ce qui est à télécharger??!!!! Si vous avez besoin d'attendre, jusqu'à ce serveur va répondre. Si vous voulez donner de la rétroaction à l'utilisateur, puis montrer votre 'progrès viewer' lors de l'appel ajax commence.
Ingénieur, pas sûr que je le suis, avez-vous l'esprit de poster un exemple de la façon dont je voudrais afficher le message lors du début de l'appel?
Voir ma mise à jour.
OriginalL'auteur Engineer
avez-vous tenté d'ajuster le délai de votre?
OriginalL'auteur John Macon
J'ai aussi utiliser jquery.filedownload pour mon application, j'espère que ma solution serait de les aider quelqu'un d'autre qui a la même exigence avec moi; et j'ai modifier l'utilisation juste un peu. j'.e:
Je l'utilise avec rails3
Je veux afficher tweeter bootstrap modal au lieu de jquery Dialogue.
A. Le côté client (front-ent), ci-dessous, la fonction de support pour le téléchargement de fichiers lorsque l'utilisateur clic sur le fichier de l'élément sur la page HTML:
fonction DownloadFile(id, file_url, nom_fichier, strTime){
}
B. côté serveur (back-end), j'ai créé une action pour envoyer un fichier, cette action est la paramenter "file_url" de la fonction javascript ci-dessus:
def télécharger
fin
C. combiner back-end et de police à la fin de l'fondée sur l'article(fichier), cliquez sur l'événement:
OriginalL'auteur datnt