设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 6360|回复: 10
打印 上一主题 下一主题

如何在ACCESS中通过代码将本地文件上传至服务器指定的FTP地址

[复制链接]
跳转到指定楼层
1#
发表于 2004-12-1 06:01:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问高手,如何在ACCESS中通过代码将本地文件上传至服务器指定的FTP地址
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2004-12-1 20:46:00 | 只看该作者
是用api函数copyfile吗?access自带得filecopy好像不支持网络路径

点击这里给我发消息

3#
发表于 2004-12-2 02:35:00 | 只看该作者
需要使用Internet控件.
4#
 楼主| 发表于 2004-12-2 04:21:00 | 只看该作者
哪一个?请告知
5#
 楼主| 发表于 2004-12-7 02:40:00 | 只看该作者
这里的人气好淡,回复的人少,看得人也少,想当初好热闹,唉,我的这个问题用Internet Transfer的ACTIVEx控件应该是有效的,但我不会用,只能下载,不能上传
6#
 楼主| 发表于 2004-12-8 00:30:00 | 只看该作者
不会再来
7#
 楼主| 发表于 2004-12-16 22:59:00 | 只看该作者
不毛之地
8#
发表于 2005-1-3 05:28:00 | 只看该作者
试一试 ADODB.Stream ? 是否可行没有验证过
9#
发表于 2005-6-5 18:25:00 | 只看该作者
我也想知道!
10#
发表于 2005-6-16 21:04:00 | 只看该作者
  基本原理是:采用ADO Stream对象的BinaryRead方法将FORM中的所有数据读出,从中截取出所需的文件数据,以二进制文件方式存盘。  下面是上传文件页面的一个例子(upload.htm):<html>

<body>

<form name="Upload" Method="ost" Enctype="multipart/form-data" Action="Upload.asp">

<input type="file" name="FileName">

<INPUT TYPE="Submit" VALUE="Upload"></TD>

</form>

</body>

</html>   程序中使用了文件对象,这样在Upload.asp中采用BinaryRead方法读来的原始数据就不仅仅是选择的文件本身的数据,还包含该文件在用户硬盘上的路径、类型、提交页面的表单域名等相关信息的描述,这样我们就需从中提取出文件的具体内容。根据分析,数据的头部信息与数据的分界线是两对回车换行符,尾部也有分隔信息,我们可以采用类似以下的方法获取文件数据。Dim FormData.FormSize,DataStart,CLStr,DivStr

FormSize=Request.TotalBytes

FormData=Request.BinaryRead(FormSize)

CLStr=ChrB(13)&ChrB(10)

DataStart=InStrB(FormData.CLStr&CLStr)+4

'4是两对回车换行符的长度

DivStr=LeftB(FormData,InStrB(FormData,CLStr)-1)

DataSize=InStrB(DataStart+1,FormData,DivStr)-DataStart-2

FormData=MidB(FormData,DataStart,DataSize)

FormData就是文件的内容了。   中间根据需要,可进行相应的处理。最后的工作就是将文件保存了。保存的方法可以有两种:一种是利用VB或VC之类程序中的二进制文件操作方法,在工程中加入适当的类型库,最终编译成DLL文件,使用时再将该DLL文件注册就可以了。文件存贮程序如下:Public Function SaveFile(Pathname As String) As String

    Dim objContext As ObjectContext

    Dim objRequest As Request

 Set objContext=GetObjectContext()

    Set objRequest=objContext("Request")

    '以下的一段代码是进行文件存贮的有关操作

 Dim FormData() As Byte,CLStr,DivStr

    Dim DataStart As Long,DataSize As Long

    DataSize=objRequest.TotalBytes

    Redim FormData(DataSize-1)

    FormData=objRequest.BinaryRead(DataSize)

    CLStr=ChrB(13) & ChrB(10)

    DataStart=InStrB(FormData,CLStr & CLStr)+4

    DivStr=LeftB(FormData,InStrB(FormData,CLStr)-1)

    DataSize=InStrB(DataStart+1,FormData,DivStr)-DataStart-2

    FormData=MidB(FormData,DataStart,DataSize)

    '创建一个二进制文件并将FormData写入其中

    Open Pathname For Binary As 1

    Put #1,,FormData

    Close #1

    SaveFile="OK!"

   End Function   此方法是利用ADO STREAM中提供的二进制文件操作方法来完成,保存文件的语句是: StreamOBJ.SaveToFile (fileName,2)。在这种操作中,我们可以将有关的操作存放在一个类文件中,在应用时,直接将该类文件包含在ASP程序中就可以了。具体处理方法,请参阅有关介绍。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 10:34 , Processed in 0.097997 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表