gpt4 book ai didi

asp.net - 无需物理路径,将文件上传控件中的 CSV 直接插入到内存流中

转载 作者:行者123 更新时间:2023-12-05 01:13:53 26 4
gpt4 key购买 nike

我不确定这是否可行,所以如果能得到一些帮助就好了。

我想做的是在 asp.net 中使用文件上传控件来选择一个 csv 文件。然后使用我在页面上的提交按钮来运行我的服务器端代码,该代码将获取该 csv 文件并将其放入内存流中,在那里它将被解析,然后添加到集合对象中。

我知道将 csv 文件保存到物理路径然后在删除文件时进行某种清理会更容易,但如果可能的话我想这样做。

请参阅下面的代码:

protected void btnUpload_Click(object sender, EventArgs e)
{
string connectingString = "";
if (ctrlFileUpload.HasFile)
{
string fileName =
Path.GetFileName(ctrlFileUpload.PostedFile.FileName);

string fileExtension =
Path.GetExtension(ctrlFileUpload.PostedFile.FileName);

ReadCsv(fileName);
}
}

protected void ReadCsv(string fileName)
{
// Some logic for parsing csv file in memory stream
}
}

有什么想法吗?谢谢!

最佳答案

我知道这是一个老问题,但下面的代码可以使用 StreamReader 将您发布的文本文件读入内存流,并且与 .NET 4.0 兼容:

protected void ReadCsv()
{
StreamReader reader = new StreamReader(ctrlFileUpload.PostedFile.InputStream);
string content = reader.ReadToEnd();
}

请注意,只有在服务器上有足够的内存来同时为多个用户处理较大的文件时,此方法才有效。如果您有数百个用户同时将文件发布到内存流并导致您的服务器因可用内存不足而崩溃,则您不希望使用此方法。如果您在共享托管环境中,您还需要检查这是否是可接受的方法。

关于asp.net - 无需物理路径,将文件上传控件中的 CSV 直接插入到内存流中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12457407/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com