Comment puis-je télécharger un fichier MVC 6 sous vNext?
Dans MVC 5, j'ai utilisé pour ce faire:
var context = (HttpContextBase)Request.Properties["MS_HttpContext"];
var file = (HttpPostedFileBase)context.Request.Files[0];
Maintenant ces ne sont pas disponibles dans MVC 6 sous vNext. Comment puis-je obtenir le fichier(s) à partir de la demande?
Vous devez vous connecter pour publier un commentaire.
FileUpload n'est pas implémenté dans MVC6 encore, voir ce problème, et des questions connexes telles que cette une pour l'état.
Vous pouvez poster un XMLHttpRequest à partir de JavaScript et de l'attraper avec quelque chose comme ce code:
Edit: Si vous voyez les questions liées, elles ont été fermées. Vous pouvez utiliser un de plus normal façon de télécharger des fichiers dans la MVC6 maintenant.
Réponse ci-dessous est d'environ beta6 version.
Il est maintenant dans le cadre.
Avec quelques mises en garde jusqu'à présent, pour obtenir nom du fichier téléchargé, vous devez analyser les en-têtes. Et vous avez à injecter IHostingEnvironment dans votre contrôleur pour obtenir de dossier wwwroot emplacement, car il n'y a plus de Serveur.MapPath()
Prends comme exemple:
<input type="text">
) avec le fichier. Supposons que j'ai une mise à jour de la page de profil qui comprend une photo de profil et de trois-quatre champ de texte. Comment vous analysez la demande sur le serveur? Je suis vraiment en face de cette question depuis longtemps et de ne pas pouvoir trouver de solution jusqu'à présent. stackoverflow.com/q/40629947/1306394Upload de fichier classeur mis en œuvre. Voir commettre:
https://github.com/aspnet/Mvc/commit/437eb93bdec0d9238d672711ebd7bd3097b6537d#diff-be9198f9b55d07e00edc73349c34536aR118
La façon la plus facile de télécharger un fichier dans ASP.NET Core 1.0 MVC (6)
vue (cshtml) :
contrôleur (cs) :