文件名有空格,超链接不识别

hillsoft 2010-08-11 02:28:05
大家好,我有个问题想请教大家。我这有个小的asp文件检索系统,检索出的文件路径是用超链接的形式显示出来的。我发现如果文件名称或者文件夹名称有空格的话,超链接就是不识别,打不开文件,请问如何解决啊?谢谢

例如我检索出的word文档是在文件服务器上,超链接显示:\\server\file\test A.doc,文件名TEST A中间有个空格就不行,打不开该文件。把空格去掉就可以了,请问如何在不去掉空格的情况下打开该文件呢
...全文
824 点赞 收藏 34
写回复
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
hillsoft 2010-09-09
[Quote=引用 32 楼 gzpydc 的回复:]
怎么样?刚才那个方法能不能解决你的问题?就是改成下面这句。

VBScript code
Response.Write "<FONT SIZE=2><B>文档:</B> <a href='"& rs.Fields("URL") &"'>" & rs.Fields("URL") &"</a></FONT>"
[/Quote]
解决了,谢谢!
回复
drugonwo 2010-09-07
回复
gzpydc 2010-09-06
怎么样?刚才那个方法能不能解决你的问题?就是改成下面这句。
Response.Write "<FONT SIZE=2><B>文档:</B> <a href='"& rs.Fields("URL") &"'>" & rs.Fields("URL") &"</a></FONT>"

回复
刹那坤 2010-09-03
[Quote=引用 3 楼 mumen504 的回复:]
replace(server.urlencode(url), "+ ", "%20 ")
[/Quote] 用这个试试看阿
回复
hillsoft 2010-09-03
[Quote=引用 28 楼 gzpydc 的回复:]
引用 27 楼 hillsoft 的回复:
求高人再帮帮忙啊


你留个QQ号吧,我加你QQ,帮你远程解决吧,这本来就是很简单的问题.
[/Quote]
好的,谢谢。QQ:1581075969
回复
hillsoft 2010-09-03
[Quote=引用 30 楼 bastever 的回复:]
引用 3 楼 mumen504 的回复:
replace(server.urlencode(url), "+ ", "%20 ")
用这个试试看阿
[/Quote]
请问这个用在哪呢?在代码的什么地方,谢谢
回复
gzpydc 2010-09-02
[Quote=引用 27 楼 hillsoft 的回复:]
求高人再帮帮忙啊
[/Quote]

你留个QQ号吧,我加你QQ,帮你远程解决吧,这本来就是很简单的问题.
回复
hillsoft 2010-09-02
求高人再帮帮忙啊
回复
hillsoft 2010-09-02
试过了,都不行啊
回复
wcwtitxu 2010-08-22
空格的话还没有问题

<script language="jscript" runat="server">
function encodePathname(pathname) {
if (pathname == null) pathname = '';
return pathname.replace(/\\/g, '/').replace(/[^\/a-z\d]/ig, encodeURIComponent);
}
</script>
<%

' ...

Response.Write "<FONT SIZE=2><B>文档:</B><a href=""" & encodePathname(rs("URL").Value) & """>" & rs.Fields("URL") &"</a></FONT>"

' ...

%>
回复
asdevil520 2010-08-22
<a href="& Replace(rs.Fields("URL")," ","%20") &">"
改成:<a href="&Replace(rs.Fields("URL"),chr(32)," ")&">"
回复
hillsoft 2010-08-20
[Quote=引用 21 楼 gzpydc 的回复:]
用这句就更完善了,能够先清除字段的前后空格,再替换字段值中间的空格为%20


HTML code

Response.Write "<FONT SIZE=2><B>文档:</B> <a href="& Replace(Trim(rs.Fields("URL"))," ","%20") &">" & rs.Fields("URL") &"</a></FON……
[/Quote]

你好,似乎接近了,现在显示出来的实际地址是:\\cn01sw02\public\temporary\WI\test%201.doc
但是仍然打不开这个文档,是不是因为test%201.doc文件名有问题啊,实际的是test 1.doc
回复
ruiandli 2010-08-19
<a href="<%=Server.URLEncode(RS("filename"))%>">打开文件</a>

回复
马老虎 2010-08-19
<a href="C:\Documents and Settings\Administrator\桌面\3 .xls">dsa</a>
回复
gzpydc 2010-08-19
用这句就更完善了,能够先清除字段的前后空格,再替换字段值中间的空格为%20


Response.Write "<FONT SIZE=2><B>文档:</B> <a href="& Replace(Trim(rs.Fields("URL"))," ","%20") &">" & rs.Fields("URL") &"</a></FONT>"
回复
gzpydc 2010-08-19
[Quote=引用 19 楼 hillsoft 的回复:]

引用 16 楼 hillsoft 的回复:

你好,改成这样以后,实际的地址是http://localhost/WI/%5C%5Ccn01sw02%5Cpublic%5Ctemporary%5CWI%5Ctest+1.doc。打不开,提示错误。


那对应你这个结果,不用 Server.URLEncode 的实际地址又是什么呢?


不用server.urlencode,实际的地址是\\cn01sw02\public\temporary\test 1.doc,在IE浏览器中输入以上地址就能访问,打开文件
[/Quote]

我明白了,原来你数据库的URL字段是包含了完整的UNC地址的,那我知道怎么解决你的问题了,你用这句就可以了(注意那对双引号中间是包含一个空格的,意思是把空格直接替换成%20):


Response.Write "<FONT SIZE=2><B>文档:</B> <a href="& Replace(rs.Fields("URL")," ","%20") &">" & rs.Fields("URL") &"</a></FONT>"
回复
hillsoft 2010-08-19
[Quote=引用 17 楼 gzpydc 的回复:]
引用 16 楼 hillsoft 的回复:

你好,改成这样以后,实际的地址是http://localhost/WI/%5C%5Ccn01sw02%5Cpublic%5Ctemporary%5CWI%5Ctest+1.doc。打不开,提示错误。



那对应你这个结果,不用 Server.URLEncode 的实际地址又是什么呢?
[/Quote]

不用server.urlencode,实际的地址是\\cn01sw02\public\temporary\test 1.doc,在IE浏览器中输入以上地址就能访问,打开文件
回复
gzpydc 2010-08-18
[Quote=引用 16 楼 hillsoft 的回复:]

你好,改成这样以后,实际的地址是http://localhost/WI/%5C%5Ccn01sw02%5Cpublic%5Ctemporary%5CWI%5Ctest+1.doc。打不开,提示错误。

[/Quote]

那对应你这个结果,不用 Server.URLEncode 的实际地址又是什么呢?
回复
hillsoft 2010-08-18
[Quote=引用 10 楼 gzpydc 的回复:]
改成这样:

HTML code

Response.Write "<FONT SIZE=2><B>文档:</B> <a href="& Server.URLEncode(rs.Fields("URL")) &">" & rs.Fields("URL") &"</a></FONT>"
[/Quote]

你好,改成这样以后,实际的地址是http://localhost/WI/%5C%5Ccn01sw02%5Cpublic%5Ctemporary%5CWI%5Ctest+1.doc。打不开,提示错误。

回复
叫我梁大侠 2010-08-17
学习学习
我的建议就是自己细心点 不要敲到了backspace
呵呵
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告