Bonjour,

J'aimerais savoir comment gérer un fileupload :

voila ce que je fais :

Ma vue :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
                            <div class="editor-label">
                                <%: Html.LabelFor(model => model.filename) %>
                            </div>
                            <div class="editor-field">
 
                                <%: Html.TextBoxFor(model => model.filename, new { type = "file" }) %>
                            </div>
					    <div class="submitBtn">
						    <p>
							    <input class = "submit enregistrer" id="importer" type="submit" value="Importer" title = "Importer les surfaces" />
							    <%: Html.ActionLink("Annuler", "Index", null, new { @class = "submit reset", title = "Revenir à la liste des utilisateurs" })%>
						    </p>
					    </div>
Mon controler :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
                        [HttpPost]
                        public ActionResult Step2(HttpPostedFileBase filename,int? idOperation)
                        {
                            var fileName = Path.GetFileName(filename.FileName);
                            var extension = Path.GetExtension(filename.FileName);
 
                            idOperation = 3;
 
                            if (!String.IsNullOrEmpty(fileName))
                            {
                                if (idOperation != null)
                                {
 
                                    if (filename.ContentLength > 0 && Path.GetExtension(filename.FileName).ToLower() == ".xls")
                                    {
                                        var path = Path.Combine("C:/Users/Public/Oscimes_Surfaces/Temp", idOperation + extension);
                                        filename.SaveAs(path);
 
 
 
                                        //using (OscimesDB db = new OscimesDB(Constant.ConnectionStringWriter))
                                        //{
                                        //    var nameJob = "Surfaces.dtsx";
                                        //    db.uspExecuteJob(nameJob,idOperation);
                                        //}
                                    }
                                    else
                                    {
                                        throw new Exception("Le fichier doit être enregistré au format Excel 2003 (.xls).");
                                    }
                                }
                            }
                            else
                            {
                                throw new Exception("Aucun fichier n'a été sélectionné");
                            }
 
                            return RedirectToAction("Step2");
                        }
A cette étape là, quand j'upload mon fichier, il se créé bien à l'emplacement désiré avec le nom que je lui donne : idOperation + extension, ce qui donne 3.xls



Ma question est comment après envoi du formulaire récupérer dans la même vue un truc du genre :

Fichier uploadé :

3.XLS et juste à côté une croix pour le supprimer...


comme le form est envoyé en POST il y a rechargement de la page, donc j'ai pensé récupérer le nom de mon fichier ici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
                        [HttpGet]    
                        public ActionResult Step2()
                        {
 
                            ViewBag.fileName = "3.xls";
 
                            return View();
                        }
avec mon viewbag cela fonctionne bien mais le but est de parcourir le dossier ou se trouve le fichier et de le trouve avec une condition :

cherche le nom de mon fichier where nom du fichier = 3.xls par exemple


avez-vous des idées ?

merci