J'essaie de télécharger des fichiers dans MVC. La plupart des solutions que j'ai vues sur SO est l'utilisation de webform. Je ne veux pas utiliser cela et préfère personnellement utiliser des flux. Comment implémentez-vous le téléchargement de fichiers RESTful sur MVC? Merci!Télécharger le fichier dans MVC
7
A
Répondre
13
Editer: Et juste quand vous pensez avoir tout compris, vous vous rendez compte qu'il y a un meilleur moyen. Consultez http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx
Original: Je ne suis pas sûr que je comprends votre question à 100%, mais je suppose que vous souhaitez télécharger un fichier à une URL qui ressemble à quelque chose comme http: // {nom du serveur}/{Contrôleur}/Télécharger? Cela serait implémenté exactement comme un téléchargement de fichier normal en utilisant des formulaires Web.
Ainsi, votre contrôleur a une action téléchargement nommé et ressemble à ceci:
//For MVC ver 2 use:
[HttpPost]
//For MVC ver 1 use:
//[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Upload()
{
try
{
foreach (HttpPostedFile file in Request.Files)
{
//Save to a file
file.SaveAs(Path.Combine("C:\\File_Store\\", Path.GetFileName(file.FileName)));
// * OR *
//Use file.InputStream to access the uploaded file as a stream
byte[] buffer = new byte[1024];
int read = file.InputStream.Read(buffer, 0, buffer.Length);
while (read > 0)
{
//do stuff with the buffer
read = file.InputStream.Read(buffer, 0, buffer.Length);
}
}
return Json(new { Result = "Complete" });
}
catch (Exception)
{
return Json(new { Result = "Error" });
}
}
Dans ce cas, je suis de retour JSON pour indiquer le succès, mais vous pouvez modifier ce xml (ou quoi que ce soit d'ailleurs) si besoin.
0
public ActionResult register(FormCollection collection, HttpPostedFileBase FileUpload1){
RegistrationIMG regimg = new RegistrationIMG();
string ext = Path.GetExtension(FileUpload1.FileName);
string path = Server.MapPath("~/image/");
FileUpload1.SaveAs(path + reg.email + ext);
regimg.Image = @Url.Content("~/image/" + reg.email + ext);
db.SaveChanges();}
Questions connexes
- 1. télécharger le fichier MVC
- 2. Télécharger le fichier jquery plugin
- 3. MVC Problème en essayant de télécharger le fichier
- 4. Silverlight 2 - Télécharger le fichier - IE Blocks file télécharger
- 5. Traite le fichier avant de le télécharger
- 6. Télécharger le fichier xml.gz avec HttpsURLConnection
- 7. Script PHP: télécharger le fichier ics
- 8. Télécharger le fichier Excel contenant plusieurs feuilles
- 9. Télécharger le fichier De URL courte
- 10. comment télécharger le fichier par POST libcurl?
- 11. Télécharger le fichier en utilisant Delphi CGI
- 12. comment télécharger le fichier vers un emplacement dans CakePHP
- 13. Télécharger le fichier sans pop-up dans ASP.NET
- 14. Télécharger le fichier sur HTTPS dans IE 5.5/IIS 5.0
- 15. Télécharger un fichier Excel et afficher dans la grille dans asp.net MVC
- 16. fichier .htaccess redirect si existe pas, le fichier distant télécharger
- 17. Télécharger un fichier dans AIr, Flex
- 18. ColdFusion: obtenir le nom d'un fichier avant de le télécharger
- 19. Télécharger le fichier sur le serveur FTP sur l'iPhone
- 20. asp.net mvc fckeditor télécharger l'image erreur
- 21. forcer un fichier à télécharger
- 22. Flash FileReference Télécharger vers ASP.NET MVC
- 23. images + Télécharger plusieurs champs de texte dans ASP.NET MVC
- 24. comment télécharger de la vidéo dans asp.net mvc
- 25. Comment récupérer la taille d'un fichier avant de le télécharger?
- 26. Comment ne pas télécharger le fichier sur soumettre
- 27. Comment télécharger le fichier à partir de Seam PDF
- 28. Télécharger le fichier en utilisant la méthode post et python
- 29. jQuery formulaire ajax et le fichier Zend_Form télécharger
- 30. Comment forcer gem install à télécharger le fichier docs?
Et, bien sûr, assurez-vous TOUJOURS que vous n'acceptez pas n'importe quel vieux morceau d'un utilisateur. Vérification minimale serait le type de contenu, l'extension et l'exécuter via un scanner de virus avant de lui faire confiance. :) – ZombieSheep
Vary true, ZombieSheep, vous devez vérifier TOUT ce qu'un client envoie côté serveur, même si vous avez validé sur le client, mais tous les trucs "prêts à la production" entravent le point où vous essayez de démontrer. – Geoff
Merci! Mais c'est la façon dont j'utilise actuellement. Je ne veux enregistrer aucun fichier sur le serveur car cela polluerait le serveur. – Roy