2011-02-24 3 views
1
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using Excel; 
using System.Data; 

namespace QuimizaReportes.Controllers 
{ 
    public class UploadController : Controller 
    { 
     public ActionResult Index() 
     { 
      //stream is supposed to be the excel file object. 
      IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream); 
      excelReader.IsFirstRowAsColumnNames = true; 

      DataSet result = excelReader.AsDataSet(); 

      while (excelReader.Read()) 
      { 

      } 

      excelReader.Close(); 

      return View(); 
     } 

    } 
} 

Je suis censé permettre aux utilisateurs de télécharger le fichier et de le lire, puis afficher un message de confirmation qu'il a été enregistré. La question est: Comment puis-je «obtenir» ce flux? Aucune suggestion?Comment puis-je lire un fichier téléchargé en utilisant MVC3?

+0

Ce poste pourrait être utile: http://stackoverflow.com/questions/1653469/how-can-i-upload-a-file-and -save-it-to-a-stream-for-further-preview-using-c –

+0

@Ardman: Je ne vois pas où il télécharge réellement le fichier. Où est l'action [Post]? –

+0

@Sergio: Regardez le troisième bloc de code de cottsak. –

Répondre

2

Est-ce que cela ferait l'affaire?

[HttpPost] 
public ActionResult Index(HttpPostedFileBase excelFile) 
{ 
    IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(excelFile.InputStream); 
    //Blah 
} 

En collaboration avec quelque chose comme:

<form action="/MyController/Index" enctype="multipart/form-data" method="post"> 
    <!-- blah --> 
    <input type="file" id="excelFile" name="excelFile" /> 
    <!-- blah --> 
</form> 
+0

Quel type d'objet est excelFile? Est-ce un type d'objet personnalisé? –

+0

Peu importe, je pense que vous avez mélangé l'ordre des paramètres. Je vais essayer avec le correctif. –

+0

Ah oui, désolé à ce sujet. Ça a marché? – Charlino

Questions connexes