最近在做文件的在線預覽,發現txt文件沒有一個較好的方法去實現,想了想可能是比較簡單就直接在后台輸出了
txt文件
1.第一次后台直接輸出
效果如我所料
后台的一些符合和html符號都沒有輸出
2.想到用HTML <pre> 標簽實現
效果:
不錯,基本格式都已經有了,但html仍不是我想要的結果
3.考慮替換想html字符
注:只需要替換一個字符即可,我這里替換<
效果:
恩不錯,就是這個效果
源碼

1 /// <summary> 2 /// 初始化頁面 3 /// </summary> 4 /// <param name="fileUrl">文件路徑</param> 5 public void InitPage(string fileUrl) 6 { 7 //獲取文件絕對路徑 8 string fileUrl_jd = System.Web.HttpContext.Current.Server.MapPath(fileUrl); 9 string outData = ""; 10 if (!File.Exists(fileUrl_jd)) 11 { 12 return; 13 } 14 15 //存在則讀取 16 17 StreamReader sr = new StreamReader(fileUrl_jd, System.Text.Encoding.Default); 18 outData = sr.ReadToEnd(); 19 //關閉流 20 sr.Close(); 21 //輸出(采用PRE標簽來格式化文本,轉換原文本中的html字符,只需要轉換一個字符即可,這里我們轉換<字符,就可以顯示原格式和原文本內容) 22 Response.Write(string.Format("<PRE class='txt-content'>{0}</PRE>", outData.Replace("<", "<"))); 23 }
簡單實現~
小技巧:加上此css后,pre標簽中的內容會自動換行,不會出現滾動條
/*使內容自動換行*/ pre { white-space: pre-wrap; word-wrap: break-word; }