puis-je utiliser: et lié-le à: p> J'écris une application Web pour les navigateurs modernes et Don Il faut s'inquiéter d'IE, c'est-à-dire que je voudrais éviter d'utiliser Flash. En ce moment, Merci! P> P> fichiers code> est toujours null quand je pose le formulaire. Y a-t-il un moyen de faire fonctionner cela dans MVC 3? P>
4 Réponses :
Avez-vous votre codage correctement dans votre formulaire?
Je pense que vous avez toujours besoin de: p> dans la déclaration de formulaire pour vous assurer que le navigateur peut poster des fichiers. P> Par exemple: P> @using (Html.BeginForm("action", "controller", FormMethod.Post, new { enctype = "multipart/form-data" }))
Ok, parlait trop tôt. Je suis retourné à la double vérification et j'avais un type-o là qui empêchait le fichier de poster!
n'utiliserait pas la requête.Files pour la compatibilité en arrière de la manière suivante:
public ActionResult UploadFiles() { string UpoadedFilesFolder = "YourServerFolder"; string fileName =""; byte[] fileData=null; foreach (HttpPostedFileBase uf in Request.Files) { HttpPostedFileBase UpoadedFile = uf; if (uf.ContentLength > 0) { fileName = Path.GetFileName(UpoadedFile.FileName); using (BinaryReader br = new BinaryReader(UpoadedFile.InputStream)) { fileData = br.ReadBytes((int)UpoadedFile.InputStream.Length); } using (FileStream fs = new FileStream(Path.Combine(System.Web.Hosting.HostingEnvironment.MapPath(UpoadedFilesFolder), fi.FileName), FileMode.Create)) { fs.Write(fileData, 0, fileData.Length); } } } return Content("OK"); }
Mon indice: dans le contrôleur p> public ActionResult Upload(HttpPostedFileBase[] files)
{
TempData["Message"] = files.Count();
return RedirectToAction("Index");
}
Cela ne fonctionnera pas:
for (int i=0; i<Request.Files.Count; i++) { HttpPostedFileBase UpoadedFile = Request.Files[i]; }
Dupliqué possible de Téléchargement multi-fichier avec HTML 5
Vous aurez probablement besoin de créer un classeur de modèle personnalisé.
Ou faire la signature
Upload ActionResult public (httppostedfileBase []) code>