【问题标题】:Uploading a text file in ASP.NET在 ASP.NET 中上传文本文件
【发布时间】:2009-05-04 05:49:39
【问题描述】:

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

谢谢

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    我认为你可以这样做:

    StreamReader reader = new StreamReader(fileUpload1.FileContent);
    string text = reader.ReadToEnd(); 
    

    【讨论】:

      【解决方案2】:
      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*/
      
      
                          }
                      }
      
                  }
              }
      

      【讨论】:

      • 虽然这段代码可以回答问题,但最好解释一下如何解决问题,并提供代码作为示例或参考。仅代码的答案可能会令人困惑且缺乏上下文。
      猜你喜欢
      • 2011-02-25
      • 2011-03-30
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 2011-04-04
      • 2023-03-10
      相关资源
      最近更新 更多