用FileUpload控件上传文件,将上传的文件,每一行赋值给结构体数组。请问,如何找到上传的文件。

实际上上传的文件实际上是放在本地的,本人不太会C#,求高手指导怎么获取该文件的路径。如何用C#实现赋值给结构体的功能!

在界面上使用FileUpload控件时,最好在此控件后面添加一个保存按钮,在按钮中处理上传控件中的文件。
当用户点击按钮,触发按钮事件时,首先判断上传控件中是否选择了文件
if (FileUpload1.HasFile)
{ ... }//在文件被选择的情况下,才进行处理,基本上所有的处理代码都可以写在这个IF中。未选择文件就忽略,不做处理。
string fileName = FileUpload1.FileName;//获取文件名
string filepath = FileUpload1.PostedFile.FileName;//获取文件客户端路径
//读取上传文件到内存中
Stream stm = FileUpload1.FileContent;
StreamReader sr = new StreamReader(stm);
string buffer = sr.ReadToEnd();//读取流的当前位置到末尾
string[] fileLine = buffer.Split((char)0x0d);//根据换行分隔,存入到数组
也可以把上传文件从客户端保存到服务端
filePath = @"D:\upload\fileName.xls"; //保存至服务端的地址
FileUpload1.PostedFile.SaveAs(filePath);//进行文件的保存处理追问

怎么将读入每一行存入到结构体数组中呢?
结构体如下:
public struct file_save
{
public string str;
public file_save(string str)
{
this.str = str;
}
}
file_save[]f_s=new file_save[100];

追答

这个结构体我不怎么用,不过根据上面的资料,你可以看到上传的文件已经根据每行分隔,存入到数组fileLine中
也就是说,fileLine数组的每个下标,代表文件的一行。
你可以操作这个数组,把文件存入到结构体中。
或者说,可以不使用结构体,这个数组已经实现了你所需要的功能

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-19
在服务器端读取还是什么?服务器端读取的话,上传的文件内容位于 FileUpload.FileContent中。然后你可以创建一个基于它的StreamReader再进一步用读出所有的内容。