jQuery Ajax Upload de Fichier
Puis-je utiliser la suite de jQuery code pour effectuer l'upload de fichier à l'aide de la méthode post d'une requête Ajax ?
$.ajax({
type: "POST",
timeout: 50000,
url: url,
data: dataString,
success: function (data) {
alert('success');
return false;
}
});
Si c'est possible, dois-je remplir les "données" de la partie? Est-ce la bonne manière? Je ne publier le fichier sur le serveur.
J'ai été Googler autour, mais ce que j'ai trouvé un plugin alors que dans mon plan, je ne veux pas l'utiliser. Au moins pour le moment.
Ajax ne prend pas en charge le téléchargement de fichiers, vous devez utiliser l'iframe à la place
Question connexe: stackoverflow.com/questions/6974684/...
Connexes: stackoverflow.com/questions/166221/...
Connexes: abandonner.ie/notebook/simple-fichier-téléchargements-using-jquery-ajax
Question connexe: stackoverflow.com/questions/6974684/...
Connexes: stackoverflow.com/questions/166221/...
Connexes: abandonner.ie/notebook/simple-fichier-téléchargements-using-jquery-ajax
OriginalL'auteur Willy | 2010-02-23
Vous devez vous connecter pour publier un commentaire.
upload de fichier est
possible grâce à ajax.Vous pouvez télécharger le fichier, sans rafraichissement de la page à l'aide d'une IFrame.
vous pouvez vérifier plus en détail ici
Mise à JOUR:
Avec XHR2, upload de Fichier via AJAX est pris en charge. E. g. par FormData objet, mais malheureusement, il n'est pas pris en charge par tous/les vieux navigateurs.
FormData soutien commence à partir de la suite de bureau versions des navigateurs.
IE 10+,
Firefox 4.0+,
Chrome 7+,
Safari 5+,
Opera 12+
Pour plus de détails, voir MDN lien
Plus précisément, c'est à dire < 10 n'est pas, pour ceux qui sont trop paresseux pour lire le lien.
non, nous n'avez pas à attendre que long plus, parce que tout IE a seulement 22% du marché mondial de partager et de 27% aux états-UNIS et en baisse rapide. Les Chances sont qu'il ya des gens de plus de 70 ans. Plutôt que de IE dicter ce que les développeurs ont à faire IE soit la forme ou de sortir de la course.
La plupart des utilisateurs d'internet explorer sont les employés de bureau qui n'ont pas le choix du navigateur à utiliser en raison de politiques de l'entreprise. Je ne pense pas que l'âge a beaucoup à faire avec elle. Je devine que la plupart des gens > 70 obtenir leur progéniture pour installer Chrome ou FF à la place 🙂
Ce lien m'a vraiment aidé à comprendre que le strict minimum. Je n'ai pas eu à utiliser une requête xhr. Si vous n'utilisez ajax assurez-vous que la
enctype
à"form/multipart"
!OriginalL'auteur Adeel
Iframes ne sont plus nécessaires pour le téléchargement de fichiers via ajax. J'ai récemment fait par moi-même. Découvrez ces pages:
À l'aide de HTML5 les uploads de fichier avec l'AJAX et jQuery
http://dev.w3.org/2006/webapi/FileAPI/#FileReader-interface
Mise à jour de la réponse et de la nettoyer. Utiliser le getSize fonction pour vérifier la taille ou utiliser la fonction getType vérification des types.
Ajouté progressbar du code html et css.
Comment utiliser la classe Upload
Progressbar code html
Progressbar code css
Notez que myXhr semble être global, ainsi que le nom, la taille et le type. Aussi il est préférable d'utiliser des "beforeSend" pour améliorer la déjà créé objet XMLHttpRequest plutôt que d'utiliser "xhr" pour en créer un puis de le modifier.
Non pris en charge par IE9: caniuse.com/#search=xhr
Je ne pense pas que nous pouvons l'utiliser comme @Ziinloader. Vous êtes à l'aide de certains locaux, méthode qui n'est pas inclus:
writer(catchFile)
. Qu'est-ce quewriter()
?Que faire si les données contient également quelques champs avec un fichier à télécharger?
OriginalL'auteur Ziinloader
Ajax post et de téléchargement de fichiers est possible. Je suis en utilisant
jQuery $.ajax
fonction pour charger mes fichiers. J'ai essayé d'utiliser l'objet XHR, mais ne pouvait pas obtenir des résultats sur le côté serveur avec PHP.Comme vous pouvez le voir, vous devez créer un objet FormData, vide ou à partir de (sérialisé? -
$('#yourForm').serialize())
formulaire existant, puis joignez le fichier d'entrée.Ici plus d'informations:
- Comment faire pour télécharger un fichier à l'aide de jQuery.ajax et FormData
- Le téléchargement de fichiers via jQuery, objet FormData est fournie et pas de nom de fichier, requête GET
Pour le processus PHP, vous pouvez utiliser quelque chose comme ceci:
La réponse a été écrit en 2014. La version de JQuery est à 1,10. Je n'ai pas essayé avec des versions plus récentes.
formData.append('file', $('#file')[0].files[0]);
retourneundefined
etconsole.log(formData)
a rien sauf_proto_
Pas pris en charge par IE 9, dans certains cas, est coincé dans le même enfer que je
J'ai eu ce travail...Pincez-moi, je suis sur Ajax de jQuery file upload ciel!
var formData = new FormData(); formData.append('file', document.getElementById('file').files[0]); $.ajax({ url : $("form[name='uploadPhoto']").attr("action"), type : 'POST', data : formData, processData: false, // tell jQuery not to process the data contentType: false, // tell jQuery not to set contentType success : function(data) { console.log(data); alert(data); } });
OriginalL'auteur pedrozopayares
Je suis assez tard pour cela, mais je cherchais un ajax d'image basé sur le téléchargement de la solution et la réponse que je cherchais était un peu dispersés tout au long de ce post. La solution que j'ai installé sur impliquées l'objet FormData. J'ai assemblé une forme de base du code que j'ai mis ensemble. Vous pouvez le voir, il montre comment ajouter un champ personnalisé à la forme avec fd.append() ainsi que la façon de gérer les données de réponse quand la requête ajax est fait.
De téléchargement html:
Dans le cas où vous travaillez avec php voici une façon de gérer l'upload qui inclut l'utilisation de deux champs personnalisés démontré dans le html ci-dessus.
Upload.php
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https,
pourquoi est-ce donc, monsieur, je copie-coller de votre code comme il estsi vous Google votre message d'erreur, c'est le premier résultat: stackoverflow.com/questions/10752055/... avez-vous accès à vos pages web en local par le biais de
file://
, plutôt que d'utiliser un serveur web? En aparté, il n'est pas des meilleures pratiques, il suffit de copier et de coller le code à l'aveuglette sans d'abord comprendre. Je vous recommande de passer par le code, ligne par ligne, pour obtenir une compréhension de ce qui se passe avant de mettre le code à utiliser.merci pour clarifier un peu les choses je l'ai fait passer par la ligne par ligne et je n'ai pas vraiment comprendre beaucoup de choses, donc j'ai posé la question pour que quelqu'un pourrait éclaircir mes doutes. Je suis à l'utilisation de locaux par voie de xampp pour être exact. Puis-je poser une question qui peut-être vous pouvez préciser?
Revival : je sais que c'est trop tard pour la réponse.. Vous avez obtenu une origine de la croix-erreur parce que vous avez ouvert le fichier html en tant que fichier que de l'exécuter à partir du serveur.
je goûtent la réponse, comment me conseillez-vous de faire pour bien faire?
OriginalL'auteur lee8oi
AJAX upload est en effet possible avec XMLHttpRequest(). Pas les iframes nécessaire. Télécharger les résultats peuvent être affichés.
Pour plus de détails voir: Réponse https://stackoverflow.com/a/4943774/873282 à la question jQuery de Progression de Téléchargement et upload de fichier en AJAX.
OriginalL'auteur koppor
Dans le cas où vous voulez le faire comme ça:
que
https://github.com/lgersman/jquery.orangevolt-ampere/blob/master/src/jquery.upload.js
pourrait être votre solution.
github.com/lgersman/jquery.orangevolt-ampere/blob/master/src/...
Merci de poster votre réponse! Assurez-vous de lire le FAQ sur l'Auto-Promotion avec soin. Notez également qu'il est que vous publiez un avertissement à chaque fois que vous accéder à votre propre site/du produit.
OriginalL'auteur lgersman
Plus de détails sur mon blog: http://blog.manki.in/2011/08/ajax-fie-upload.html.
quel est votre préoccupation?
OriginalL'auteur Manki
edit: Remarque contentype et traiter des données
Vous pouvez simplement l'utiliser pour télécharger des fichiers via Ajax...... soumettre entrée ne peut pas être à l'extérieur de la forme de l'élément 🙂
OriginalL'auteur Gvice
Voici comment j'ai obtenu ce travail:
HTML
JS
PHP
$('#file')[0].files[0]
qui est une sorte d'étrange JS solution de contournement sans nécessiter un bon<form>
OriginalL'auteur М.Б.
J'ai mis en œuvre un multiple de sélection du fichier avec l'aperçu instantané et téléchargement après la suppression des fichiers indésirables aperçu via ajax.
Documentation détaillée peut être trouvée ici: http://anasthecoder.blogspot.ae/2014/12/multi-file-select-preview-without.html
Démo: http://jsfiddle.net/anas/6v8Kz/7/embedded/result/
jsFiddle: http://jsfiddle.net/anas/6v8Kz/7/
Javascript:
OriginalL'auteur Ima
J'ai manipulé dans un code simple. Vous pouvez télécharger un travail de démonstration de ici
Pour votre cas, ces très possible. Je vais vous prendre, étape par étape, comment vous pouvez télécharger un fichier vers le serveur à l'aide d'AJAX jquery.
Tout d'abord, mettons-nous à créer un fichier HTML à ajouter le fichier de formulaire élément comme indiqué ci-dessous.
Deuxièmement de créer un jquery.js fichier et ajoutez le code suivant pour gérer notre soumission des fichiers sur le serveur
Il vous fait . Voir plus
OriginalL'auteur Daniel Nyamasyo
Oui, vous pouvez, il suffit d'utiliser javascript pour obtenir le fichier, assurez-vous de lire le fichier en tant que données d'URL. Analyser les choses avant de base64 à réellement obtenir les données encodées en base 64 et puis si vous êtes à l'aide de php ou de toute autre extrémité arrière de la langue vous pouvez décoder le 64 base de données et enregistrer dans un fichier, comme illustré ci-dessous
Bien sûr, vous voulez probablement faire de la validation de certains comme la vérification de type de fichiers que vous faites affaire avec et des trucs comme ça, mais c'est l'idée.
OriginalL'auteur Piacenti
À l'aide de FormData est le chemin à parcourir, comme indiqué par beaucoup de réponses. voici un peu de code qui fonctionne très bien pour cet usage. Je suis également d'accord avec le commentaire de nidification ajax blocs pour compléter circonstances complexes. En incluant e.PreventDefault(); dans mon expérience, rend le code plus de la croix-navigateur compatible.
OriginalL'auteur Mike Volmar
OriginalL'auteur Nikit Barochiya
Vous pouvez utiliser la méthode ajaxSubmit comme suit 🙂
lorsque vous sélectionnez un fichier qui ont besoin de télécharger vers le serveur, formulaire de soumettre au serveur 🙂
vous avez raison! ce script doit utiliser jquery forme de plugin pour soumettre l'utilisation de la méthode ajaxSubmit qui définissent en jquery forme de plugin
OriginalL'auteur Quy Le
pour télécharger un fichier qui est envoyé par l'utilisateur comme une partie de la forme à l'aide de jquery, veuillez suivre le code ci-dessous :
Puis envoyer les données du formulaire de l'objet serveur.
Nous pouvons également ajouter un Fichier ou un Blob directement à l'objet FormData.
OriginalL'auteur VISHNU Radhakrishnan
Si vous voulez télécharger le fichier à l'aide d'AJAX voici le code que vous pouvez utiliser pour le transfert de fichier.
Voici le code HTML pour Télécharger le fichier
OriginalL'auteur Nikunj K.
Pour obtenir toutes vos entrées de formulaire, y compris la type="file" vous devez utiliser objet FormData.
vous serez en mesure de voir le formData contenu dans le debugger -> réseau ->Headers après vous allez envoyer le formulaire.
OriginalL'auteur David
OriginalL'auteur Jayesh Paunikar
2019 mise à jour:
html
js
views.py
Parce que le problème se manifeste de façon comparable lors de l'utilisation de Django, et si vous êtes à l'aide de Django, il n'y a pas beaucoup de sens ici en ce qui concerne le résoudre. J'ai pensé que je voudrais offrir une assistance proactive juste au cas où quelqu'un arrive ici, comme je l'ai fait dans l'avenir. Avoir une rude journée?
OriginalL'auteur Jay
Ici est une idée que je pensais:
Avoir un formulaire qui vous permet de déplacer l'ENTRÉE:Fichier de l'élément.
Le résultat sera publier sur le cadre, et alors vous pouvez simplement envoyer les données extraites d'un niveau à l'image de la marque que vous voulez avec quelque chose comme:
et le chargement de la page.
Je crois qu'il fonctionne pour moi, et selon que vous pourriez être en mesure de faire quelque chose comme:
OriginalL'auteur Fallenreaper