没有文件系统访问权限的FileUploadControl

本文关键字:权限 FileUploadControl 访问权 访问 文件系统 | 更新日期: 2023-09-27 18:04:32

不幸的是,OLEDB和FileUploadControl似乎都想要一个路径。

现在,这在用户提交excel文件后工作,但由于0文件系统访问,在我的服务器上不起作用:

FileUploadControl.SaveAs(filePath);
ConvertToCSV(filePath);
...
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", filePath);
var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString);

我看到FileUploadControl暴露了一个流和一个字节码。有可能用这些属性遍历文件吗?

没有文件系统访问权限的FileUploadControl

看看Excel Data Reader

我能够从流中读取值,使用以下代码没有问题:

Stream myStream = MyFileUpload.FileContent;
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(myStream);
DataSet result = excelReader.AsDataSet();
string r1c1Val = result.Tables[0].Rows[0][0].ToString();

显然我的例子很简单,但是把数据作为一个数据集应该给你很大的灵活性,你如何阅读它

我知道OleDB不能在流上工作…

如果你真的想在上传后直接在内存中访问excel文件,那么你将需要一些第三方组件(如Flexcel, Aspose)。单元格,电子表格…),可以直接从内存加载Excel文件(FileUploadControl.FileBytesFileUploadControl.FileContent)…

虽然不确定ConvertToCSV做什么,是否可以在内存上工作…