点超链接打开或下载文件

boyle0630 2008-04-07 10:34:03
有一个asp:HyperLink按件,在页面初始化时有代码如下:

if (oreader["publish_path"].ToString().Trim() != "") //oreader为OleDbDataReader的一个实例,publish_path为数据表中保存路径的字段
{
Hyl_additional.Enabled =true;
Hyl_additional.Text = "显示附件" ;
Hyl_additional.NavigateUrl = oreader["publish_path"].ToString().Trim();
}
else
{
Hyl_additional.Enabled = false;
}

我所要的打开/下载文件的效果没出来,直接点超链接没反应,而把在鼠标停在超链接上时状态栏所显示的内容输入到地址栏却可以打开指向的文件,不知何解?
...全文
317 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
boyle0630 2008-04-07
  • 打赏
  • 举报
回复
谢谢大家,特别是JLJL99000,原来是HYPERLINK的地址要是虚拟地址,结贴了
JL99000 2008-04-07
  • 打赏
  • 举报
回复
newname = Server.MapPath(".\\UpLoadFiles\\") + newname;
--
不能用这句,因为Server.MapPath()获取的是绝对路径,应该用相对路径
newname = "~/UpLoadFiles/" + newname

try~
boyle0630 2008-04-07
  • 打赏
  • 举报
回复
jl说得对,可能是数据表里路径的问题,存得是服务器上的绝对路径

newname = now.Year.ToString().Trim() + now.Month.ToString().Trim() + now.Day.ToString().Trim() + now.Hour.ToString().Trim() + now.Minute.ToString().Trim() + now.Second.ToString().Trim() + now.Millisecond.ToString().Trim();
newname += myFile.PostedFile.ContentLength.ToString() + newext;//newext扩展名
newname = Server.MapPath(".\\UpLoadFiles\\") + newname;

如果我要保存相对路径该怎么办啊
yb1124 2008-04-07
  • 打赏
  • 举报
回复
......状态栏所显示的内容输入到地址栏却可以打开指向的文件,不知何解?


你在页面中加一个HyperLink Text="测试路径"
设置它的属性navigateurl=状态栏显示的内容
看看是否能下载,判断出路径是否有问题
JL99000 2008-04-07
  • 打赏
  • 举报
回复
楼上的例子:
这个跳转页面123t.aspx是在该解决项目下的一个文件夹“测试”里
所以实际应该跳转的地址应该写上"~/测试/123t.aspx”
zdjray 2008-04-07
  • 打赏
  • 举报
回复
你的浏览器用了插件,被拦截了
比如google 或者sogou的toolbar
yunfeng007 2008-04-07
  • 打赏
  • 举报
回复
你的oreader["publish_path"]存的路径的格式是什么?你贴出来看看。
JL99000 2008-04-07
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}

protected void Button1_Click(object sender, EventArgs e)
{
Hashtable oreader = new Hashtable();
oreader.Add("publish_path", "~/测试/123t.aspx");
SetHY(oreader);
}
private void SetHY(Hashtable oreader)
{
if (oreader["publish_path"].ToString().Trim() != "") //oreader为OleDbDataReader的一个实例,publish_path为数据表中保存路径的字段
{
Hyl_additional.Enabled = true;
Hyl_additional.Text = "显示附件";
Hyl_additional.NavigateUrl = oreader["publish_path"].ToString().Trim();
}
else
{
Hyl_additional.Enabled = false;
}
}
--
注意HYPERLINK的地址是虚拟地址,而且文件夹的层次要分清楚
boyle0630 2008-04-07
  • 打赏
  • 举报
回复
3楼的我试了,没有用结果跟我原先的一样,没反应
boyle0630 2008-04-07
  • 打赏
  • 举报
回复
我先试试
JL99000 2008-04-07
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Hashtable oreader = new Hashtable();
oreader.Add("publish_path", "存放你想跳转的地址");

if (oreader["publish_path"].ToString().Trim() != "") //oreader为OleDbDataReader的一个实例,publish_path为数据表中保存路径的字段
{
Hyl_additional.Enabled = true;
Hyl_additional.Text = "显示附件";
Hyl_additional.NavigateUrl = oreader["publish_path"].ToString().Trim();
}
else
{
Hyl_additional.Enabled = false;
}
}
}
--
可以实现
userwjg 2008-04-07
  • 打赏
  • 举报
回复
Hyl_additional.NavigateUrl="~/aaa.txt";

62,074

社区成员

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

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

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

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