我尝试使用“表单”将文件上传到控制器,并出现一些问题, 下面是视图代码
<form action="@Url.Action("uploadRecordFile")" method="post" enctype="multipart/form-data">
<label for="file"> Filename : </label>
<input type="file" name="file" id="file" />
<input type="submit" />
</form>
控制器代码
public ActionResult uploadRecordFile(HttpPostedFileBase file)
{
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/FileUploads"), fileName);
file.SaveAs(path);
}
var ExcelFileName = new ExcelQueryFactory(@Url.Content("~/FileUpload/" + file.FileName.ToString()));
foreach (var item in excel) // when the code runs into this, there is some error statements
{
// 'System.Data.OleDb.OleDbException' 類型的例外狀況發生於 System.Data.dll,但使用者程式碼未加以處理
// 其他資訊: 外部資料表不是預期的格式。
抱歉,这是中文,我认为它说'类型异常发生在System.Data.dll中,但代码无法处理;其他信息:数据表不是预期的格式
我尝试使用相同的文件并测试“uploadRecordFile”方法,我发现它没问题,方法可以顺利运行,所以我认为这不是excel格式的问题
var excelFile = new ExcelQueryFactory("D:/Names.xlsx");
var excel = excelFile.Worksheet<TrainingRecord>();
我认为当控制器处理文件时,有一些代码需要转换文件