客户端打开文件,解决了马上给分,帮帮小妹!

zpclever 2003-08-23 02:56:39
已经把上传到服务器端的文件路径存在数据库中,假设表设计如下:
woa_info(infoid,title,infopath), infopath是存绝对路径还是虚拟路径比较好?
然后想在datagrid中选中某行点击文件标题,打开文件,文章内容最好用网页的形式显示
...全文
65 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zpclever 2003-08-23
  • 打赏
  • 举报
回复
好吧,谢谢你了
panyee 2003-08-23
  • 打赏
  • 举报
回复
查一上以前的DataGrid文章...
zpclever 2003-08-23
  • 打赏
  • 举报
回复
在datagrid中点击超级连结标题时,你是怎么把改行的关键字传到showfile.aspx叶面的
我不知道取参数的事件应该写在datagrid的那个事件里?
layershow 2003-08-23
  • 打赏
  • 举报
回复
http://www.aspalliance.com/aldotnet/examples/translate.aspx

this.z.Click += new System.EventHandler(this.z_click);
public void z_click(object sender, System.EventArgs e)
{
}

Me.z.Click += New System.EventHandler(Me.z_click)
Public Sub z_click(sender As Object, e As System.EventArgs)
End Sub 'z_click

有意思
panyee 2003-08-23
  • 打赏
  • 举报
回复
你又不是把内容存数据库里, 用不着imagedata

zpclever 2003-08-23
  • 打赏
  • 举报
回复
"imagedata" 在上川文件时怎么写进去的
panyee 2003-08-23
  • 打赏
  • 举报
回复
文件的ContentType

在上传文件时会取得, upFile.PostedFile.ContentType

文件的 Response.ContentType = "text/txt"
html Response.ContentType = "text/html"
其它可以写 Response.ContentType = "application/octet-stream"

Write里的参数为byte[]
zpclever 2003-08-23
  • 打赏
  • 举报
回复
我知道,我是说他们是Response.ContentType 和Response.OutputStream.Write(,,)需要的什么参数?
panyee 2003-08-23
  • 打赏
  • 举报
回复
这是我数据库里的字段啊

你当然得改一改了
zpclever 2003-08-23
  • 打赏
  • 举报
回复
read["type"],read["imgData"] (int)read["imgSize"] 请问,type,imgdata,imgsize是什么
panyee 2003-08-23
  • 打赏
  • 举报
回复
http://www.aspalliance.com/aldotnet/examples/translate.aspx
到这个地址, 把c#转成vb.net

filestream在命名空间 System.IO里面
zpclever 2003-08-23
  • 打赏
  • 举报
回复
啊呃,要改好多啊。我用的是vb.net的语言,filestream,没有这个东西。
panyee 2003-08-23
  • 打赏
  • 举报
回复
我这里有直接从数据库中读取图片的例子, 你再改一下
就是取出infopath, 再得到相应文件,
FileStream fs = new FileStream(infopath, FileMode.Open);
转成字节数组, 写到客户端即可

<%@Page language="C#"%>
<%@import namespace="System.Data"%>
<%@import namespace="System.Data.SqlClient"%>
<script language="C#" runat="server">
public void Page_Load(Object o, EventArgs e)
{
int ImgID = Convert.ToInt32(Request.Params["infoid"]);
string connStr = ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection conn = new SqlConnection(connStr);
string sql = "select * from t_imgs where id = @ImgID";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@ImgID", SqlDbType.Int).Value = ImgID;
conn.Open();
SqlDataReader read = cmd.ExecuteReader();
read.Read();
Response.ContentType = (string)read["type"];
Response.OutputStream.Write((byte[])read["imgData"], 0, (int)read["imgSize"]);
Response.End();
conn.Close();
}
</script>
panyee 2003-08-23
  • 打赏
  • 举报
回复
我这里有直接从数据库中读取图片的例子, 你再改一下
就是取出infopath, 再得到相应文件,
FileStream fs = new FileStream(infopath, FileMode.Open);
转成字节数组, 写到客户端即可

<%@Page language="C#"%>
<%@import namespace="System.Data"%>
<%@import namespace="System.Data.SqlClient"%>
<script language="C#" runat="server">
public void Page_Load(Object o, EventArgs e)
{
int ImgID = Convert.ToInt32(Request.Params["infoid"]);
string connStr = ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection conn = new SqlConnection(connStr);
string sql = "select * from t_imgs where id = @ImgID";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@ImgID", SqlDbType.Int).Value = ImgID;
conn.Open();
SqlDataReader read = cmd.ExecuteReader();
read.Read();
Response.ContentType = (string)read["type"];
Response.OutputStream.Write((byte[])read["imgData"], 0, (int)read["imgSize"]);
Response.End();
conn.Close();
}
</script>
zpclever 2003-08-23
  • 打赏
  • 举报
回复
呵呵,思路挺好的。可以给出showfile.aspx读取infopath所在文件的代码吗?我不会。
还有,数据库重是存文件的物理路径吗?
panyee 2003-08-23
  • 打赏
  • 举报
回复
专门做一个aspx文件来显示文件, 传入参数: infoid

设定datagrid里一个HyperLinkColumn来显示链接

点击后, 用新窗口打开showfile.aspx?infoid=xxx

showfile.aspx就是读取infopath所在文件, 并将它显示出来

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧