
动易发现过这个问题,在他们的SiteWeaver 内容管理系统中提供了相应的解决方法:
'方法一可以解决下载地址中的中文名在另存为对框中的乱码问题,但只能直接点击下载
'Response.write "<meta http-equiv='refresh' content=""0;url='" & DownloadUrl & "'"">"
'方法二可以使用“目标另存为”,但会有中文乱码问题
Response.Redirect DownloadUrl以上代码来自PowerEasy® SiteWeaver™ CMS 6.6 ACCESS Build 1030的Soft\ShowSoftDown.asp中。
方法一确实可以解决乱码问题,但在IE上首先会被信息栏拦截,提示如下内容:
为帮助保护您的安全,Internet Explorer 已经限制从此站点下载文件。单击此处查看选项…
这造成了下载的不便,下边我们提供第三种方法并通过了测试(红色新增):
Dim DownloadUrl, FileExt
DownloadUrl = PE_Content.GetDownloadUrl()
DownloadUrl = Replace(DownloadUrl, " ", " ")
[color=Red]Dim NewDownloadUrl
NewDownloadUrl = DownloadUrl[/color]
Set PE_Content = Nothing
Call CloseConn
If DownloadUrl = "ErrorDownloadUrl" Then Response.End
FileExt = LCase(Mid(DownloadUrl, InStrRev(DownloadUrl, ".") + 1))
If InStr(DownloadUrl, "://") <= 0 Then
DownloadUrl = "http://" & Trim(Request.ServerVariables("HTTP_HOST")) & DownloadUrl
End If
Select Case FileExt
Case "wmv", "mpg", "asf", "mp3", "mpeg", "avi"
ShowMediaPlayer (DownloadUrl)
Case "rm", "ra", "ram"
ShowRealPlayer (DownloadUrl)
Case Else
'方法一可以解决下载地址中的中文名在另存为对框中的乱码问题,但只能直接点击下载
'Response.write "<meta http-equiv='refresh' content=""0;url='" & DownloadUrl & "'"">"
'方法二可以使用“目标另存为”,但会有中文乱码问题
'Response.Redirect DownloadUrl
[color=Red]'方法三可以解决下载地址中的中文名在另存为对框中的乱码问题,可以使用“目标另存为”,站内资源有效
'服务器必须安装 AspUpload 上传组件 下载地址:http://down.chinaz.com/soft/9228.htm
If InStr(NewDownloadUrl, "://") <= 0 Then
Dim Upload
Set Upload = Server.CreateObject("Persits.Upload")
Upload.SendBinary Server.MapPath(NewDownloadUrl),True,"application/octet-binary",True
Else
Response.Redirect DownloadUrl
End If[/color]
End Select
评论(6)
对了你给的ASPDownload的软件下载安装后提示有恶意软件。
我想问情况为什么会这样呢?
期盼你的答复。
站长站提供的AspUpload应该没问题吧,要不上百度搜索下载个安装也可以的。
屋主提供的Aspuploa软件直接在本机上安装就可以了吧。在IIS里面需要指向到网站的地址吗?还是指向Aspuploa的安装地址上?
这样,安装Aspupload后,新建一个asp文件,直接拿红色部分代码测试下载,OK了再放SiteWeaver上测试。
还可以尝试用无组件来保存文件,参考[url=article.asp?id=1058]《弹出保存窗口下载服务器上的任何文件[未知大小]》[/url]一文。
需要说明的是,这种下载方式比较占用服务器资源,使用要三思。
看你写的那么简单就实现了,为什么我的这个会变得那么复杂?会不会我的领悟能力太差,还是我太愚笨或者运气很烂。