我有一个流程,允许用户下载电子表格,进行一些更改,然后上传这些更改。
上传方法看起来像 -
public DataTable ImportXLS(String SourceFilePath) {
string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + SourceFilePath + ";" +
"Extended Properties=Excel 8.0;";
using (OleDbConnection cn = new OleDbConnection(ConnectionString)) {
cn.Open();
DataTable dbSchema = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (dbSchema == null || dbSchema.Rows.Count < 1) {
throw new Exception("Error: Could not determine the name of the first worksheet.");
}
string WorkSheetName = dbSchema.Rows[0]["TABLE_NAME"].ToString();
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + WorkSheetName + "]", cn);
DataTable dt = new DataTable(WorkSheetName);
da.Fill(dt);
return dt;
}
}
当我在本地调用该方法时,它可以工作,因为我可以看到我的本地驱动器。
当部署到 Web 服务器时,调用如下 -
ExportImport _ei = new ExportImport();
DataTable dt = null;
dt = _ei.ImportXLS("C:\Users\mike\Desktop\mike.xls");
我收到一条错误消息,指出“C:\Users\mike\Desktop\mike.xls”不是有效路径,显然是因为它在 Web 服务器上不存在。
有没有人尝试过通过网络上传文件以及如何解决文件位置问题?