为什么不能下载到本地客户端的硬盘中?

zsl 2004-09-11 06:52:34
为什么不能下载到本地客户端的硬盘中?
下列代码,是直接拷贝到服务器的D:\his\,但我想直接拷贝到本地客户端的D:\his\目录下,请问,要怎么改代码??


file=request("name00")

set MyFileObject=Server.CreateObject("Scripting.FileSystemObject")
MyFileObject.CopyFile Server.mappath("/down/"&file),"D:\his\"&file


...全文
205 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
caojinrong 2004-09-16
  • 打赏
  • 举报
回复
这次简单了,只要设置ASP代码里的n_all:下载文件的个数-1;urls(0)——urls(n_all):每个文件相对于当前ASP文件的路径;paths(i)="下载到的文件夹/"+urls(i).点下载就可以了。

我试过了,上面的代码没问题,你把IE选项-->安全-->本地Intranet -->安全设置 中关于ActiveX控件的部分设置一下。
caojinrong 2004-09-16
  • 打赏
  • 举报
回复
我做了一个结合ASP使用的下载页面,给你发过去了。
zsl 2004-09-15
  • 打赏
  • 举报
回复
这里用绝对路径也不行啊。郁闷中!!!
UserControl1.url="http://192.168.3.1/down/病区护理系统.exe"



<%@LANGUAGE="vbSCRIPT"%>

<script language=vbscript>

'由于下载是个异步过程,在程序的编制过程中,注意一定要将异步动作转化为同步动作,以下的示例代码中给出了解决方案,以供参考。

function download()
UserControl1.url="http://192.168.3.1/down/病区护理系统.exe"
UserControl1.path="d:/his/病区护理系统.exe"
UserControl1.p_shell=""
UserControl1.action()
tips()
end function
function tips()
if usercontrol1.done then
alert "下载成功,共"+cstr(usercontrol1.bytes)+"字节。"
usercontrol1.done=false
usercontrol1.bytes=0
else
settimeout "tips()",100
end if
end function

dim urls(),paths(),n_current,n_next,n_all

function m_download()
'alert paths(0)+paths(1)+paths(2)
if n_current=n_next then
usercontrol1.url=urls(n_current)
usercontrol1.path=paths(n_current)
'alert paths(n_current)
usercontrol1.action()
n_next=n_next+1
end if
if usercontrol1.done then
if n_next>n_all then
'下载结束时的处理代码也写在此处
alert "下载完毕,共"+cstr(usercontrol1.bytes)+"字节。"
UserControl1.done =false
UserControl1.bytes=0
exit function
else
n_current=n_current+1
usercontrol1.done=false
end if
end if
settimeout "m_download()",100
end function
</script>




<html><title>复制文件</title>
<body>
<OBJECT ID="UserControl1" CLASSID="CLSID:70D5166B-BCD9-4451-A463-54C0005026C6" CODEBASE="工程1.CAB#version=1,0,0,0">
<param name="_ExtentX" value="370">
<param name="_ExtentY" value="370"></OBJECT>

<p><a href="#" onclick="download()">单文件下载</a></p>




<p><a href="/down/病区护理系统.exe">这个可以成功下载</a></p>


</body>
</html>
caojinrong 2004-09-15
  • 打赏
  • 举报
回复
不好意思,忘了跟你说了,URL属性是文件的绝对路径。

多文件下载时,先确定文件的个数,n_all=文件个数-1,然后redim urls(n_all+1),redim paths(n_all+1),即重新定义一下数组中元素的个数,然后把下载路径和保存路径设定好,注意,都是全路径。然后执行action方法。
zsl 2004-09-14
  • 打赏
  • 举报
回复
帮我看看代码,调用不成功啊。是不是我调用得不好?我已经将这个ASP文件与工程1.cab放在同一目录下了。
还有,你所说的仅设置p_shell,怎么搞啊??我不需要我的客户知道下载到什么地方的。

“把url和path设为空,设置p_shell,再调用action方法,是运行客户端p_shell对应的程序,要是他们连下载到什么地方都不知道的话,我觉得还是直接运行比较好。“


另外,下面这个代码肯定可以成功的:
<a href="/down/病区护理系统.exe">这个可以成功下载</a>






<%@LANGUAGE="vbSCRIPT"%>

<script language=vbscript>

'由于下载是个异步过程,在程序的编制过程中,注意一定要将异步动作转化为同步动作,以下的示例代码中给出了解决方案,以供参考。

function download()
UserControl1.url="/down/病区护理系统.exe"
UserControl1.path="d:/his/病区护理系统.exe"
UserControl1.p_shell=""
UserControl1.action()
tips()
end function
function tips()
if usercontrol1.done then
alert "下载成功,共"+cstr(usercontrol1.bytes)+"字节。"
usercontrol1.done=false
usercontrol1.bytes=0
else
settimeout "tips()",100
end if
end function

dim urls(),paths(),n_current,n_next,n_all

function m_download()
'alert paths(0)+paths(1)+paths(2)
if n_current=n_next then
usercontrol1.url=urls(n_current)
usercontrol1.path=paths(n_current)
'alert paths(n_current)
usercontrol1.action()
n_next=n_next+1
end if
if usercontrol1.done then
if n_next>n_all then
'下载结束时的处理代码也写在此处
alert "下载完毕,共"+cstr(usercontrol1.bytes)+"字节。"
UserControl1.done =false
UserControl1.bytes=0
exit function
else
n_current=n_current+1
usercontrol1.done=false
end if
end if
settimeout "m_download()",100
end function
</script>




<html><title>复制文件</title>
<body>
<OBJECT ID="UserControl1" CLASSID="CLSID:70D5166B-BCD9-4451-A463-54C0005026C6" CODEBASE="工程1.CAB#version=1,0,0,0">
<param name="_ExtentX" value="370">
<param name="_ExtentY" value="370"></OBJECT>

<p><a href="#" onclick="download()">单文件下载</a></p>




<p><a href="/down/病区护理系统.exe">这个可以成功下载</a></p>


</body>
</html>

zsl 2004-09-13
  • 打赏
  • 举报
回复
谢谢,已经收到了。
先把这帖子结了。
zsl 2004-09-13
  • 打赏
  • 举报
回复
我的QQ:33189727
caojinrong 2004-09-13
  • 打赏
  • 举报
回复
你有QQ或MSN吗?我们直接传。
caojinrong 2004-09-13
  • 打赏
  • 举报
回复
ActiveX控件,有什么做不到的?在线杀毒都可以,简单的下载又有何难?还有谁要的?我一并给发。
yourhe 2004-09-13
  • 打赏
  • 举报
回复
可以得话给我也来一份好吗?

yourhe@21cn.com
zsl 2004-09-13
  • 打赏
  • 举报
回复
我没收到啊,能不能把它发到我的另一个信箱:zhangshuanglin@sina.com.cn
谢谢了,非常感谢!!!!
DARKNESSFALL 2004-09-13
  • 打赏
  • 举报
回复
恐怕行不通吧,如果可行,还谈什么安全性?

如果可以的话,给我一份吧。
caojinrong 2004-09-13
  • 打赏
  • 举报
回复
弄好了,也发过去了。有什么问题再找我。
阿泰 2004-09-12
  • 打赏
  • 举报
回复
楼主的要求有两种变通的实现方法,
首先我认为你要放弃在服务器端进行控制的想法.

方法1:写一个控件,嵌入网页,在这个控件上下载,可以控制下载路径的

方法2:写一个小程序,放在客户机器上,与你原来的程序"医院xxx.exe"放在一起
拖个快捷方式放在桌面,到时候打电话告诉他们执行这个程序就可以下载
使用应用程序的话实现这个就很容易了.
并规定,如果谁把这个快捷方式删除了,就罚款,呵呵
升级的时候打个电话进行通知就可以了
或者可以作成自动服务.
zsl 2004-09-12
  • 打赏
  • 举报
回复
TO: superdullwolf(超级大笨狼,每天要自强) ( ) 从网上复制粘贴的代码我自己都可以找得到,还用得着你拷贝一份给我吗???况且你复制的代码是--牛头不对马嘴

TO jonas401(小飞):权限当然有啊。


难道没人能够帮忙找一下控件吗?(我GOOGLE搜索了好久,实在找不到啊,帮帮忙啊,谢谢了)
jonas401 2004-09-12
  • 打赏
  • 举报
回复
楼主的代码是在服务器上执行的,所以文件也被copy在服务器上
况且,如果要把文件从服务上copy到本机上,也得有权限才行
hrstudy 2004-09-12
  • 打赏
  • 举报
回复
楼主这么坚定可以做的到,那等找到的时候也给大家分享一下吧。
zsl 2004-09-12
  • 打赏
  • 举报
回复
我这边每台客户机都有还原卡,对C盘进行还原,但没对D盘进行还原。因此,最好不要去设置300多台客户机的INTERNET属性。
我的程序文件是中文的。如:医生工作站.exe,病区护理系统.exe,药房系统.exe
zsl 2004-09-12
  • 打赏
  • 举报
回复
我不急啊,谢谢了,非常感谢!!!!!!!!
我一定多给你分,并且地多开一个帖子给你分的。谢谢了!!!

对了,最好不要再去改客户端IE的INTERNET属性(客户端IE的INTERNET属性中的相关项),因为设置的话,要去300多台客户机设置啊,太麻烦了(不用考虑太多,只需要能够顺利下载到客户端的D:\his\目录下就行了)。并且支持中文文件名。就这2个要求了,谢谢了!!!!!
caojinrong 2004-09-12
  • 打赏
  • 举报
回复
要不等两天,我给你做好算了,只要你多给我点分就行了,你急着用吗?
加载更多回复(9)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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