把网页存在SQL SERVER数据库里,怎样显示出来?巨难!! System.Text.UnicodeEncoding.Default.GetString(byte[] x);得到字符串. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://dotnet.aspx.cc/ShowDetail.aspx?id=EY1XLDYV-PIDF-43LO-1WFL-FMY5ALE1F635 你的网页内容可以保存成为一个XML文件。网页版型可以保存成为XSL形势的文件。这样将XML文件保存在数据库中。具体技术参考XSL和XML网页显示方式,其实CSDN的网页就是这样实现的!所有的帖子都是XML数据,有一个版型文件:/expert/Xsl/2.xsl。定义网页版型的。 找MSDN帮助 都有的同意1楼的 能存进去 拿出来还不简单:-) http://dotnet.aspx.cc/ShowDetail.aspx?id=EY1XLDYV-PIDF-43LO-1WFL-FMY5ALE1F635在SQL Server中保存和输出任意类型的文件 请参考孟宪会的。向SQL Server数据库添加图片 http://dotnet.aspx.cc/ShowDetail.aspx?id=2A5DD7C6-A45A-48AB-A2E8-342A29F17506从SQL Server数据库提取图片并显示在DataGridhttp://dotnet.aspx.cc/ShowDetail.aspx?id=ECD9AE16-8FF0-4A1C-9B9F-5E8B641CB1B1 http://dotnet.aspx.cc/ShowDetail.aspx?id=ECD9AE16-8FF0-4A1C-9B9F-5E8B641CB1B1 采用流的方式读出,可以参考图片的读出读入方式、WORD文件的存入读出方式http://dotnet.aspx.cc/ShowDetail.aspx?id=EY1XLDYV-PIDF-43LO-1WFL-FMY5ALE1F635这篇文章不错! showfile.aspx的主要代码Response.AddHeader("Content-Type",dr["suffix"].ToString()); Response.BinaryWrite((byte[])dr["content"]);为什么在showfile.aspx页面中显示数据库中的文件时,总是出现是打开还是保存的对话框?怎么样使这个对话框不出现,而直接显示文件? 碰巧我做了一个这样类似的东西,仅作参考:1、文件的上传和下载: /// <summary> /// 上传文件到数据库 /// </summary> /// <param name="filePosted"></param> /// <param name="tableName"></param> /// <param name="columnName"></param> /// <param name="locateCondition"></param> /// <returns></returns> protected bool UploadFile(HttpPostedFile filePosted,string tableName,string columnName,ArrayList columnValue,string locateCondition) { try { Upload(filePosted); ArrayList colValue = columnValue; colValue.Add(_FileData); object[] col = new object[colValue.Count]; columnValue.CopyTo(col); WriteFileToDb(tableName,columnName,col,locateCondition); return true; } catch { return false; } } /// <summary> /// 上传文件到服务器某路径下 /// </summary> /// <param name="filePosted"></param> /// <param name="filePath"></param> /// <returns></returns> protected bool UploadFile(HttpPostedFile filePosted,string filePath) { try { Upload(filePosted); WriteFileToDisk(filePath); return true; } catch { return false; } } /// <summary> /// 下载文件到客户端 /// </summary> /// <param name="filePath"></param> protected void DownloadFile(string tableName,string columnName,string locateCondition) { string mySql = "select "+columnName+" from "+tableName+" where "+locateCondition; SqlDataReader dr; using (KY_BASE.DataAccess myDA = new KY_BASE.DataAccess()) { dr = myDA.ExeReader(mySql); dr.Read(); Response.Clear(); Response.OutputStream.Write((byte[])dr[columnName],0,65535); } Response.End(); } private void Upload(HttpPostedFile filePosted) { if (filePosted == null){return;} HttpPostedFile myFile = filePosted; int fileLen = myFile.ContentLength; _FileData = new byte[fileLen]; myFile.InputStream.Read(_FileData,0,fileLen); } private void WriteFileToDb(string tableName,string columnName,object[] columnValue,string locateCondition) { string mySql = "select "+columnName+" from "+tableName+" where "+locateCondition; using (KY_BASE.DataAccess myDA = new KY_BASE.DataAccess()) { myDA.UpdateRow(mySql,columnName.Split(new char[]{','}),columnValue); } } private void WriteFileToDisk(string filePath) { FileStream newFile = new FileStream(filePath,FileMode.Create); newFile.Write(_FileData,0,_FileData.Length); newFile.Close(); } 2、从数据库取出网页文件: /// <summary> /// 获得本页面用户定义的html串 /// </summary> /// <param name="pageID">页面ID</param> /// <returns></returns> public string GetHtml(string pageID,ref string kindID) { string mySql = "select html,FileSize,KindID from s_page where PageID='"+pageID+"'"; SqlDataReader dr; using (KY_BASE.DataAccess myDA = new KY_BASE.DataAccess()) { dr = myDA.ExeReader(mySql); if (dr.Read() && !dr.IsDBNull(0)) { kindID = dr.GetString(2); MemoryStream ms = new MemoryStream((byte[])dr[0],0,Convert.ToInt32(dr[1])); System.Text.StringBuilder sb = new System.Text.StringBuilder(8192); using (StreamReader sr = new StreamReader(ms,System.Text.Encoding.Default)) { string line; while ((line = sr.ReadLine()) != null) { sb.Append(line); } } ms.Close(); dr.Close(); string html = sb.ToString(); return html.Substring(html.IndexOf("table")-1,html.LastIndexOf("table")+6-html.IndexOf("table")+1); } else { dr.Close(); return ""; } }//end using } 3、至于显示就简单了,你可以Response.write到客户端去。可能需要将特殊符号进行转换(<,>号),到客户端再反向转换一次。还可以使用SgmlReader把html转换为xml串:然后在客户端就读取xml数据岛中的数据,然后显示即可: /// <summary> /// 将html转换为xml串,同时将转换中产生的错误信息写入属性Errors /// </summary> /// <param name="strInputHtml"></param> /// <returns></returns> public string HtmlToXml(string strInputHtml) { string strOutputXhtml = String.Empty; SgmlReader reader = new SgmlReader(); reader.DocType ="HTML"; StringReader sr = new System.IO.StringReader(strInputHtml); reader.InputStream = sr; StringWriter sw = new StringWriter(); XmlTextWriter w =new XmlTextWriter( sw); reader.Read(); while(!reader.EOF) { w.WriteNode(reader,true); } w.Flush(); w.Close(); this.Errors = Convert.ToString(reader.ErrorLog); return sw.ToString(); }客户端: xmlPageData = new ActiveXObject("msxml2.DOMDocument"); xmlPageData.async = false; xmlPageData.loadXML(PageData.xml); showDataDiv.innerHTML = PageData.xml; 为什么在showfile.aspx页面中显示数据库中的文件时,总是出现是打开还是保存的对话框?怎么样使这个对话框不出现,而直接显示文件? asp.net 网站结构,你们是怎么样的 iframe下的页面,Request.QueryString["id"]为空 Eval 判断 asp程序如何控制图片大小 怎么让按钮变灰,不可点击?? 如何获取 DataSet 中的指定子表 高手拯救!关于保存视图状态的问题 关于上传文件的权限问题 安装VS.NET出现错误!!!!!!!!!!!!!!!!!!!!!!!!!!急 请教:集成模式时IIS配置“默认文档”是否不起作用了? treeview的样式问题,见鬼了!!! 在ASP.NET下如何实现能选择时间输入的文本框?(就像window form下的那个时间文本框)
同意1楼的 能存进去 拿出来还不简单:-)
在SQL Server中保存和输出任意类型的文件
向SQL Server数据库添加图片
http://dotnet.aspx.cc/ShowDetail.aspx?id=2A5DD7C6-A45A-48AB-A2E8-342A29F17506
从SQL Server数据库提取图片并显示在DataGrid
http://dotnet.aspx.cc/ShowDetail.aspx?id=ECD9AE16-8FF0-4A1C-9B9F-5E8B641CB1B1
这篇文章不错!
Response.BinaryWrite((byte[])dr["content"]);
为什么在showfile.aspx页面中显示数据库中的文件时,总是出现是打开还是保存的对话框?
怎么样使这个对话框不出现,而直接显示文件?
1、文件的上传和下载:
/// <summary>
/// 上传文件到数据库
/// </summary>
/// <param name="filePosted"></param>
/// <param name="tableName"></param>
/// <param name="columnName"></param>
/// <param name="locateCondition"></param>
/// <returns></returns>
protected bool UploadFile(HttpPostedFile filePosted,string tableName,string columnName,ArrayList columnValue,string locateCondition)
{
try
{
Upload(filePosted);
ArrayList colValue = columnValue;
colValue.Add(_FileData);
object[] col = new object[colValue.Count];
columnValue.CopyTo(col);
WriteFileToDb(tableName,columnName,col,locateCondition);
return true;
}
catch
{
return false;
}
} /// <summary>
/// 上传文件到服务器某路径下
/// </summary>
/// <param name="filePosted"></param>
/// <param name="filePath"></param>
/// <returns></returns>
protected bool UploadFile(HttpPostedFile filePosted,string filePath)
{
try
{
Upload(filePosted);
WriteFileToDisk(filePath);
return true;
}
catch
{
return false;
}
} /// <summary>
/// 下载文件到客户端
/// </summary>
/// <param name="filePath"></param>
protected void DownloadFile(string tableName,string columnName,string locateCondition)
{
string mySql = "select "+columnName+" from "+tableName+" where "+locateCondition;
SqlDataReader dr;
using (KY_BASE.DataAccess myDA = new KY_BASE.DataAccess())
{
dr = myDA.ExeReader(mySql);
dr.Read();
Response.Clear();
Response.OutputStream.Write((byte[])dr[columnName],0,65535);
}
Response.End();
} private void Upload(HttpPostedFile filePosted)
{
if (filePosted == null){return;}
HttpPostedFile myFile = filePosted;
int fileLen = myFile.ContentLength;
_FileData = new byte[fileLen];
myFile.InputStream.Read(_FileData,0,fileLen);
} private void WriteFileToDb(string tableName,string columnName,object[] columnValue,string locateCondition)
{
string mySql = "select "+columnName+" from "+tableName+" where "+locateCondition;
using (KY_BASE.DataAccess myDA = new KY_BASE.DataAccess())
{
myDA.UpdateRow(mySql,columnName.Split(new char[]{','}),columnValue);
}
}
private void WriteFileToDisk(string filePath)
{
FileStream newFile = new FileStream(filePath,FileMode.Create);
newFile.Write(_FileData,0,_FileData.Length);
newFile.Close();
}
/// <summary>
/// 获得本页面用户定义的html串
/// </summary>
/// <param name="pageID">页面ID</param>
/// <returns></returns>
public string GetHtml(string pageID,ref string kindID)
{
string mySql = "select html,FileSize,KindID from s_page where PageID='"+pageID+"'";
SqlDataReader dr;
using (KY_BASE.DataAccess myDA = new KY_BASE.DataAccess())
{
dr = myDA.ExeReader(mySql);
if (dr.Read() && !dr.IsDBNull(0))
{
kindID = dr.GetString(2);
MemoryStream ms = new MemoryStream((byte[])dr[0],0,Convert.ToInt32(dr[1]));
System.Text.StringBuilder sb = new System.Text.StringBuilder(8192);
using (StreamReader sr = new StreamReader(ms,System.Text.Encoding.Default))
{
string line;
while ((line = sr.ReadLine()) != null)
{
sb.Append(line);
}
}
ms.Close();
dr.Close();
string html = sb.ToString();
return html.Substring(html.IndexOf("table")-1,html.LastIndexOf("table")+6-html.IndexOf("table")+1);
}
else
{
dr.Close();
return "";
}
}//end using
}
可能需要将特殊符号进行转换(<,>号),到客户端再反向转换一次。
还可以使用SgmlReader把html转换为xml串:然后在客户端就读取xml数据岛中的数据,然后显示即可:
/// <summary>
/// 将html转换为xml串,同时将转换中产生的错误信息写入属性Errors
/// </summary>
/// <param name="strInputHtml"></param>
/// <returns></returns>
public string HtmlToXml(string strInputHtml)
{
string strOutputXhtml = String.Empty;
SgmlReader reader = new SgmlReader();
reader.DocType ="HTML";
StringReader sr = new System.IO.StringReader(strInputHtml);
reader.InputStream = sr;
StringWriter sw = new StringWriter();
XmlTextWriter w =new XmlTextWriter( sw);
reader.Read();
while(!reader.EOF)
{
w.WriteNode(reader,true);
}
w.Flush();
w.Close();
this.Errors = Convert.ToString(reader.ErrorLog);
return sw.ToString();
}
客户端:
xmlPageData = new ActiveXObject("msxml2.DOMDocument");
xmlPageData.async = false;
xmlPageData.loadXML(PageData.xml);
showDataDiv.innerHTML = PageData.xml;
怎么样使这个对话框不出现,而直接显示文件?