| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 867 人关注过本帖
标题:asp文件下载的问题
只看楼主 加入收藏
gruntzghost
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-5-26
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
asp文件下载的问题
网上找了一下文件下载的代码,感觉没有什么问题。却提示以下报错:
Microsoft VBScript runtime (0x800A0005)
Invalid procedure call or argument
求高手解答。

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.
<%
Response.Buffer = true
Response.Clear

dim url
Dim fso,fl,flsize
dim Dname
Dim objStream,ContentType,flName,isre,url1
'*********************************************调用时传入的下载文件名
Dname=trim(request("n"))
'******************************************************************
If Dname<>"" Then
'******************************下载文件存放的服务端目录
url=server.MapPath("/")&"\"&Dname
'***************************************************
End If
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fl=fso.getfile(url)
flsize=fl.size
flName=fl.name
Set fl=Nothing
Set fso=Nothing
%>
<%
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile url


Select Case lcase(Right(flName, 4))
Case ".asf"
ContentType = "video/x-ms-asf"
Case ".avi"
ContentType = "video/avi"
Case ".doc"
ContentType = "application/msword"
Case ".zip"
ContentType = "application/zip"
Case ".xls"
ContentType = "application/vnd.ms-excel"
Case ".gif"
ContentType = "image/gif"
Case ".jpg", "jpeg"
ContentType = "image/jpeg"
Case ".wav"
ContentType = "audio/wav"
Case ".mp3"
ContentType = "audio/mpeg3"
Case ".mpg", "mpeg"
ContentType = "video/mpeg"
Case ".rtf"
ContentType = "application/rtf"
Case ".htm", "html"
ContentType = "text/html"
Case ".txt"
ContentType = "text/plain"
Case Else
ContentType = "application/octet-stream"
End Select



Response.AddHeader "Content-Disposition", "attachment; filename=" & flName
Response.AddHeader "Content-Length", flsize

Response.Charset = "UTF-8"
Response.ContentType = ContentType

Response.BinaryWrite objStream.Read
Response.Flush
response.Clear()
objStream.Close
Set objStream = Nothing

%>




[ 本帖最后由 gruntzghost 于 2010-5-26 15:42 编辑 ]
搜索更多相关主题的帖子: asp 文件 
2010-05-26 15:40
gruntzghost
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-5-26
收藏
得分:0 
补充一下,我的目录是url=server.MapPath("../img")&"\"&Dname
文件存在根目录img文件夹里,调用语句是a href="download.asp?n=n.gif"
报错找不到文件。
Microsoft VBScript runtime (0x800A0035)
File not found
/web/download.asp, 第 20 行
请大家帮我解答一下,谢谢。
2010-05-26 16:19
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:20 
server.mappath要用相对路径\img
url=server.MapPath("..\img")&"\"&Dname
这样才OK!最起码路径要保证是正确的,你确定父目录下有IMG这个文件夹吗?如果要测试,建议你把IMG文件夹移动到和DOWNLOAD。ASP同一级来,这样就直接使用:
url=server.MapPath("\img")&"\"&Dname



Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-05-26 16:59
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:0 
在我这里测试没问题,我用的就是你的代码,在http里输入:download.asp?n=1.jpg(当然是从IIS进入的,IIS没开等于无效),马上提示下载,前提1.jpg必须在img根目录下真实存在,绝对不能搞错了!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-05-26 17:04
gruntzghost
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-5-26
收藏
得分:0 
我用的是简易IIS服务器,其他的网页都正确,链接到下载页面就是提示出错,很莫名,我再试试看
2010-05-26 17:08
gruntzghost
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-5-26
收藏
得分:0 
我不知道为什么,存放的位置和文件都存在啊,但就是提示

Microsoft VBScript runtime (0x800A0035)
File not found
/web/download.asp, 第 20 行

iis肯定是打开的,否则也不可能提示出错
2010-05-26 17:17
gruntzghost
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-5-26
收藏
得分:0 
我晕倒,原来是当前目录要是./img,少一个.就出错。
2010-05-26 17:42
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:0 
路径还没有找正确吗?

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-05-27 14:54
gruntzghost
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-5-26
收藏
得分:0 
回复 8楼 gupiao175
我认为编译器应该不会这么严格。况且你回复的那路径也不准确啊。
2010-05-28 22:20
快速回复:asp文件下载的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021636 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved