téléchargement de fichier dans asp.net mvc 4 rasoir
Je suis en utilisant ASP .Net MVC 4.0 et VS10. Je suis un newbie dans l'application web.
J'ai conçu une page avec du code html de rasoir vue. Voici un code de Index.cshtml:
@{
ViewBag.Title = "BAP Automation";
}
@section featured {
<section class="featured">
<div class="content-wrapper">
<hgroup class="title">
<h1>@ViewBag.Title.</h1>
<h2>@ViewBag.Message</h2>
</hgroup>
<form action="Index">
<table> **//EDITED BELLOW**
<tr><form action="" method="post">
<td>Upload Excel File: </td>
<td><input type="text" name="NAMEtxtFileName"/></td>
<td><input type="button" value="Upload" id="IDbtnUpload" name="NAMEbtnUpload"/></td>
</form>
</tr>
<tr>
<td>Company Name: </td>
<td><input type="text" /></td>
<td></td>
</tr>
<tr>
<td></td>
<td align="right"><input type="submit" value="Process" /></td>
<td></td>
</tr>
</table>
</form>
</div>
</section>
}
Je suis en train de télécharger un fichier excel dans NAMEbtnUpload'cliquez sur l'événement. en cliquant sur ce bouton, nous allons dans cette page, juste un téléchargement de fichier boîte de dialogue va s'ouvrir et sélectionnez le fichier, l'emplacement du fichier sera affiché dans la NAMEtxtFileName zone de texte.
EDIT 1:
J'ai écrit un code de l'suggéré code:
[HttpPost]
public ActionResult Index(HttpPostedFileBase NAMEbtnUpload)
{
if (NAMEbtnUpload.ContentLength > 0)
{
var fileName = Path.GetFileName(NAMEbtnUpload.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/Given Excel's"), fileName);
NAMEbtnUpload.SaveAs(path);
}
return RedirectToAction("Index");
}
mais cela montre d'erreur suivant:
Erreur de serveur dans l'Application'/'.
La ressource ne peut pas être trouvé.
Description: HTTP 404. La ressource que vous recherchez (ou une de ses dépendances) peut avoir été supprimée, que son nom ait changé ou est temporairement indisponible. Veuillez consulter l'URL suivante et assurez-vous qu'il est correctement orthographié.
URL demandée: /
source d'informationauteur Abdur Rahim
Vous devez vous connecter pour publier un commentaire.
Essayez d'ajouter le "EncType" attribut à votre formulaire.
Phil Haack vous montre comment gérer les uploads de fichier avec son blog Le téléchargement d'un Fichier (Ou les Fichiers) Avec ASP.NET MVC.
Il y a un peu de choses qui vous manque donc la lecture de ce post, vous obtiendrez plus que n'importe quelle réponse ici.
** MISE À JOUR POUR MODIFIER 1 **
Quelques problèmes
<form action="index" >
- ce qui devrait être<form action="/ControllerName/Index">
<input type="button" value="Upload" id="IDbtnUpload" name="NAMEbtnUpload"/>
devrait êtreIl est plus conventionnelle à utiliser
@using(Html.BeginForm())
par opposition à l'écriture manuelle de balises de formulaire. Voir ci-dessous.Qui n'est pas possible en raison du chargement d'un fichier de l'élément n'est pas accessible par programmation, plus. "Retour dans les jours", il a été, et des sites malveillants silencieusement transféré d'informations sensibles par le réglage de l'upload d'un fichier de contrôle de la valeur au bien connu fichier de mot de passe endroits et ainsi de suite.
Vous aurez juste à mettre un
<input type="file" />
sur votre formulaire et de gérer le téléchargement de serverside, comme le suggère le lien sur @Bretts réponse.De définir le nom de fichier de contrôle dans la classe du contrôleur.
par exemple, dans le code ci-dessus
changement NAMEbtnUpload à NAMEtxtFileName
ce résoudre votre problème.