ashx文件上传控件直接读取Excel文件内容的问题
各位高手大家好,本人想请教个技术问题啊。我在本地页面放了一个上传控件 想通过ajax的方式 来读取用户上传上来的Excel的文件内容, 但是不想把Excel先上传到服务器在读取, 想直接读取,请参考代码:
ashx文件:
public void ProcessRequest (HttpContext context) {
string fu= context.Request["fu"];//客户端上传上来的文件路径
DataTable dt = ExcelDataSource(context.Server.MapPath(fu), "Sheet1"); //读取Excel文件内容
context.Response.ContentType = "text/plain";
context.Response.Write(dt.Rows.Count.ToString());
}
public DataTable ExcelDataSource(string filepath, string sheetname)
{
string strConn;
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1;';";
using (OleDbConnection conn = new OleDbConnection(strConn))
{
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "$]", strConn);
DataTable dt = new DataTable();
oada.Fill(dt);
return dt;
}
}
Web 页面就是一个上传控件:
ajax方式:
$.ajax({
type: "POST",
url: "Ajax/FU.ashx",
data: "fu="+escape(fu.val()),
success: function (data, textStatus) {
alert(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
}
//dataType: "xml"
});
在本地测试是OK的, 我发布到服务器上就不行了, 报500错误,我认为就是因为WEB页在服务上所以得到客户端的文件路径没用的。请指点下