我正在阅读此答案以使用MVC上传文件。我已经在a之后有了文件,InputStream.Read但是不知道如何使用它来创建文件,IEnumerable<MyModel>因此我可以使用EF将其发送到db。该文件是CSV文件,我知道其结构。public class MyViewModel{ [Required] public HttpPostedFileBase File { get; set; }}[HttpPost]public ActionResult Index(MyViewModel model){ if (!ModelState.IsValid) { return View(model); } byte[] uploadedFile = new byte[model.File.InputStream.Length]; model.File.InputStream.Read(uploadedFile, 0, uploadedFile.Length); // now you could pass the byte array to your model and store wherever // you intended to store it return Content("Thanks for uploading the file");}我的模特:public class PriceViewModel{ public int PriceId { get; set; } public int? YearSelected { get; set; } public int? WeekSelected { get; set; } public int? StateSelected { get; set; }}
1 回答
九州编程
TA贡献1785条经验 获得超4个赞
将字节转换为字符串
var csv = Encoding.UTF8.GetString(uploadedFile);
然后将CSV解析为模型。
CsvHelper应该对此提供很多帮助。
var textReader = new StringReader(csv);
var helper = new CsvHelper(textReader);
IEnumerable<PriceViewModel> records = helper.GetRecords<PriceViewModel>();
从那里您可以验证数据并保存到数据库。
- 1 回答
- 0 关注
- 220 浏览
添加回答
举报
0/150
提交
取消