Comment puis-je utiliser AJAX pour charger des fichiers sur ASP.NET?
Je suis en train de télécharger des fichiers à l'aide de l'AJAX ASP.NET. J'ai ce Javascript:
var xhr = new XMLHttpRequest();
for (var i = 0; i < files.length; i++) {
xhr.open('post', '/File/Upload', true);
xhr.setRequestHeader("Content-Type", "multipart/form-data");
var formData = new FormData();
formData.append("_file", files[i]);
xhr.send(files[i]);
}
files
est un Array()
Alors j'essaie d'accéder au poste de fichier dans le code C#, mais la valeur est toujours null
. Comment puis-je résoudre ce problème?
//Method 1, Result: file = null
HttpPostedFileBase file = Request.Files["_file"];
//Method 2, Result: postedFile.Count = 0
HttpFileCollectionBase postedFile = Request.Files;
- en êtes-vous des exceptions
- Rien, pas d'erreur, pas d'exceptions.
Vous devez vous connecter pour publier un commentaire.
En supposant que vous avez la forme suivante contenant le fichier champ de saisie:
vous pouvez essayer la fonction suivante:
Maintenant sur le serveur, vous devriez être en mesure de récupérer le fichier à l'aide de
Request.Files
.xhr.send("files = " + formData + "&folderId = " + otherParameter);
, mais avec qui je n'ai pas tout de la parametters...FormData
exemple:fd.append('folderId', otherParameter);
. Aussi loin que l'appel envoyer, il devrait rester inchangé, comme indiqué dans ma réponse:xhr.send(fd);
.file
tableau est téléchargé?onsubmit
événement.Vous pouvez également utiliser jQuery
vous avez 2 fonctions
Ajax : http://api.jquery.com/jQuery.ajax/
Charge(raccourci, les appels ajax) : http://api.jquery.com/load/
Exemples : http://www.w3schools.com/jquery/jquery_ajax.asp
Édité : 2012-10-04 16:31
Raison : Reçu le Commentaire suivant :
Hm-ce que je ne comprends pas, je ne veux pas charger les informations du serveur, je veux obtenir les informations que j'ai dans mon code JS sur mon serveur. J'ai déjà les informations à envoyer dans les fichiers Array(). – Elfayer
Ce que vous faire est de vous faire un appel AJAX vers le serveur comme un service web.
Voici un exemple
dans le paramètre data de vous donner à vos données.
- Je l'envoyer ici sous la forme d'un tableau, mais vous pouvez l'envoyer aussi comme 1 paramètre.
Comment accédez-vous bien dans mon cas, un générique de gestionnaire.
Comme je l'ai dit, je lui donne la forme d'un tableau, donc je n'ai qu'un seul paramètre
et puis j'ai de le découper. Mais si vous voulez donner comme seul propriétés vous
pouvez l'obtenir comme :
files
Array().data: { "params[]": [files[i]] },
j'obtiens :value = [Object File]
. Puis, j'ai déjà une méthode de téléchargement qui fonctionne avec un seul fichier à télécharger (je suis en train de faire un Télécharger plusieurs fichiers). Et cette méthode de travail si je peux obtenir unHttpPostedFile
ou peut-être (certainement)HttpPostedFileBase
.