C# 在ASP.NET中上载文本文件

C# 在ASP.NET中上载文本文件,c#,asp.net,C#,Asp.net,我有一个网页,用户可以在上面上传文本文件(但是文本文件,即扩展名为.txt的文件,可能有多种编码,例如ASCII、UTF8、UNICODE等等),我试图在将文件保存到磁盘之前验证内存中的内容,如果内容无效,我就不保存文件。我正在从文件上载控件(fileUpload1.FileContent,返回字节流)读取内容。在.NET中是否有简单的方法将上载文件的内容转换为字符串(即从fileUpload1.FileContent返回的字节流),或者我必须先检查第一个字节以检测编码 谢谢我想你可以做到: S

我有一个网页,用户可以在上面上传文本文件(但是文本文件,即扩展名为.txt的文件,可能有多种编码,例如ASCII、UTF8、UNICODE等等),我试图在将文件保存到磁盘之前验证内存中的内容,如果内容无效,我就不保存文件。我正在从文件上载控件(fileUpload1.FileContent,返回字节流)读取内容。在.NET中是否有简单的方法将上载文件的内容转换为字符串(即从fileUpload1.FileContent返回的字节流),或者我必须先检查第一个字节以检测编码


谢谢

我想你可以做到:

StreamReader reader = new StreamReader(fileUpload1.FileContent);
string text = reader.ReadToEnd(); 
文本文件格式示例
代码#姓名#父亲姓名#出生日期#地点#手机号码
1#XYZ#YYY#09-06-89#LKO#999999
受保护的void btnUpload\u单击(对象发送方,事件参数e)
{
如果(第页有效)
{
bool logval=true;
如果(logval==true)
{
if(fuUploadExcelName.HasFile)
{
字符串img_1=fuUploadExcelName.PostedFile.FileName;
字符串img_2=System.IO.Path.GetFileName(img_1);
字符串extn=System.IO.Path.GetExtension(img_1);
字符串frstfilenamepart=“Text”+DateTime.Now.ToString(“ddmmyyyhyhmmss”);/*用于存储在所需路径中的文件名*/
UploadExcelName.Value=frstfilenamepart+extn;
fuUploadExcelName.SaveAs(Server.MapPath(“~/Text/”)+“/”+UploadExcelName.Value);/*上载的文本文件将存储在此路径中*/
字符串文件名=UploadExcelName.Value;
字符串filePath=Server.MapPath(“~/Text/”+文件名);
StreamReader文件=新的StreamReader(文件路径);
string[]ColumnNames=file.ReadLine().Split(“#”)/*从textfile读取数据*/
DataTable dt=新的DataTable();
foreach(ColumnNames中的字符串列)
{
dt.Columns.Add(Column);/*添加列/
}
字符串换行符;
而((NewLine=file.ReadLine())!=null)
{
DataRow dr=dt.NewRow();
string[]values=NewLine.Split('#');
for(int i=0;i
虽然此代码可以回答问题,但最好解释如何解决问题,并提供代码作为示例或参考。只有代码的答案可能会令人困惑,并且缺乏上下文。
Example of text file format

Code#Name#Fathername#DOB#Location#MobileNo
1#XYZ#YYY#09-06-89#LKO#9999999999



     protected void btnUpload_click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                bool logval = true;
                if (logval == true)
                {
                    if (fuUploadExcelName.HasFile)
                    {
                        String img_1 = fuUploadExcelName.PostedFile.FileName;
                        String img_2 = System.IO.Path.GetFileName(img_1);
                        string extn = System.IO.Path.GetExtension(img_1);
                        string frstfilenamepart = "Text" + DateTime.Now.ToString("ddMMyyyyhhmmss");/*Filename for storing in Desired path*/
                        UploadExcelName.Value = frstfilenamepart + extn;
                        fuUploadExcelName.SaveAs(Server.MapPath("~/Text/") + "/" + UploadExcelName.Value);/*Uploaded text file will be store at this path*/

                        string filename = UploadExcelName.Value;
                        string filePath = Server.MapPath("~/Text/" + filename);




                        StreamReader file = new StreamReader(filePath);
                        string[] ColumnNames = file.ReadLine().Split('#');/*read data from textfile*/
                        DataTable dt = new DataTable();
                        foreach (string Column in ColumnNames)
                        {
                            dt.Columns.Add(Column);/*adding the columns/
                        }
                        string NewLine;
                        while ((NewLine = file.ReadLine()) != null)
                        {
                            DataRow dr = dt.NewRow();
                            string[] values = NewLine.Split('#');

                            for (int i = 0; i < values.Length; i++)
                            {
                                dr[i] = values[i].TrimEnd();
                            }
                            dt.Rows.Add(dr);
                        }
                        file.Close();
                        grdview.DataSource = dt;/*make datasouce from text file*
                        grdview.DataBind();/*binding the grid*/


                    }
                }

            }
        }