没有文件系统访问权限的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暴露了一个流和一个字节码。有可能用这些属性遍历文件吗?
看看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.FileBytes
或FileUploadControl.FileContent
)…
虽然不确定ConvertToCSV
做什么,是否可以在内存上工作…