Jquery file upload 使用javascript函数在mvc5中读取Excel文件
在MVC5中单击按钮上载Excel工作表时,需要读取该工作表。上载的Excel文件名使用AJAX方法传递到操作中。此处的文件变量get null value in posted方法。 在下面的ajax方法中,如何将所选文件作为HttpPostedFileBase传递。 `Jquery file upload 使用javascript函数在mvc5中读取Excel文件,jquery-file-upload,ajaxform,asp.net-mvc-ajax,asp.net-mvc-file-upload,Jquery File Upload,Ajaxform,Asp.net Mvc Ajax,Asp.net Mvc File Upload,在MVC5中单击按钮上载Excel工作表时,需要读取该工作表。上载的Excel文件名使用AJAX方法传递到操作中。此处的文件变量get null value in posted方法。 在下面的ajax方法中,如何将所选文件作为HttpPostedFileBase传递。 ` 我找到了解决办法。更改代码如下 @Html.AntiForgeryToken 从EXCEL上传 $.ajax{ url:UploadFile,//用于处理数据的服务器脚本 键入:“POST”, async:false, x
我找到了解决办法。更改代码如下 @Html.AntiForgeryToken 从EXCEL上传 $.ajax{ url:UploadFile,//用于处理数据的服务器脚本 键入:“POST”, async:false, xhr:函数{//自定义XMLHttpRequest var myXhr=$.ajaxSettings.xhr; 如果myXhr.upload{//请检查upload属性是否存在 myXhr.upload.addEventListener'progress', progressHandlingFunction,false;//用于处理上载的进度 } 返回myXhr; }, 数据:formData, //告诉jQuery不要处理数据或担心内容类型的选项。 cache:false, contentType:false, processData:false, 成功:函数数据{} }; [HttpPost] 公共操作结果上载文件HttpPostedFileBase文件 {返回Json;
}通过更改code@Html.AntiForgeryToken从EXCEL上载解决了此问题
<input style="display:none" type="file" id="fileupload1" />
<button type="button" onclick='$("#fileupload1").click()'>UPLOAD FROM EXCEL</button>
<span style="display:none" id="spnName"></span>
$(function () {$("#fileupload1").change(function () {
$("#spnName").html($("#fileupload1").val().substring($("#fileupload1").val().lastIndexOf('\\') + 1));
var file = $("#spnName").html();
$.ajax({
url: "UploadExcelForContractStaff",
type: 'POST',
data: JSON.stringify({ file: file }),
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function (data) {
}
});
});
});`
[AcceptVerbs(HttpVerbs.Post)]
public string UploadExcelForContractStaff(HttpPostedFileBase uploadFile)
{
StringBuilder strValidations = new StringBuilder(string.Empty);
try
{
if (uploadFile.ContentLength > 0)
{
string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads"),
Path.GetFileName(uploadFile.FileName));
uploadFile.SaveAs(filePath);
DataSet ds = new DataSet();
//A 32-bit provider which enables the use of
string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=Excel 12.0;";
using (OleDbConnection conn = new System.Data.OleDb.OleDbConnection(ConnectionString))
{
conn.Open();
using (DataTable dtExcelSchema = conn.GetSchema("Tables"))
{
string sheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
string query = "SELECT * FROM [" + sheetName + "]";
OleDbDataAdapter adapter = new OleDbDataAdapter(query, conn);
//DataSet ds = new DataSet();
adapter.Fill(ds, "Items");
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
//Now we can insert this data to database...
}
}
}
}
}
}
}
catch (Exception ex) { }
return "";
}