我有一个过程,允许用户下载电子表格,进行一些更改,然后上传这些更改。将CSV导入到Web应用程序
上传方法样子 -
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:\用户\麦克风\桌面\ mike.xls”不是一个有效的路径,显然是因为它在Web服务器上不存在。
有没有人有任何尝试通过网络上传文件的经验,以及如何解决文件位置问题?
你需要传递'_ei.ImportXLS()'到的路径上传的文件被保存。 –
您也可以先将您的文件上传到服务器,让我们说一个'files'目录,然后用朝向那个URL的URL打开它。如'_ei.ImportXLS(“/ files/mike.xls”);' –
使用此功能的用户将无法访问Web服务器。我如何将它上传到网络服务器? – duckmike