一句VBA 下载上传网上文件-何保辛
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access365/SharePoint/互联网


一句VBA 下载上传网上文件

发表时间:2012/12/29 1:37:50 评论(5) 浏览(22903)  评论 | 加入收藏 | 复制
   
摘 要:VBA既然是我们的快速开发工具,我们就要让工具为我们做事,别累了自己为打磨工具发愁! 借助开源的技术,我们就可以专心在我们的应用上面了!
正 文:

我已经玩了很多种方法了! 包括


1. MSXML2.xmlHttpRequest, xmlServerRequest 1.0- 6.0 (VBA暂时没办法 onreadyStateChange触发事件,微软说http://support.microsoft.com/kb/303322/zh-cn,测试了 VB还可以搞旁门方法实行,但VBA还不可以!)

2. webbrowser 控件

3. 调用 js

4. 调用 SWF( as3)


最后我选择这个方法的好处是:

1. 不占用 vba 资源,

2. 可以让系统调用多个CPU线程处理

3. 可以选择性适应 32位, 或 64位系统

4. 可以设定userAgent (ie 里的 js 里面可以,as3 不支持,Webbrowser不可以)

5. 已经帮我们把 gzip 网页  gunzip 了

6. 使用超级简单,功能超级全面,性能超级稳定!


为了不占用 VBA 进程,我访寻了多种调用的方法后,决定不用 ActiveX 控件!就是因为 VBA的限制!

也因为我开发的程序不能容易被破解,所以我选择了 Accde! 只能用 VBA 来运行!


我选了两个工具 来测试(这两个都是80年代黑客常用的工具之一),现在都是开源了十几年超高稳定性的运行器:
1. lynx 浏览器  http://lynx.isc.org/(70年代的 文本式浏览器,原来只有在Unix上军用的,后来被改成可以在60多个系统上运行,包括现在的Win7 64)

2. cURL  http://curl.haxx.se/(是命令行的 url 执行器,也是很多系统里面内置的命令,就Windows没有,php也内置了这套代码)


最后我使用的是 cURL,真的简单!

curl --url pt.3g.qq.com --dump-header header.txt --cookie-jar cookie.txt

这样就把 某个网页

- 拿到你本机的out.txt 文件;

- 把包含cookie保存了在 cookie.txt;

- 把header 保存在  header.txt !


你们就自己开发 不同的应用好了! 除了 http 协议,还可以支持 

 DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer 续传, proxy tunneling (代理隧道)


说了那么多好处,当然要数一下他的不好了!就是因为他是命令行的,所以跟你的程序的交互,都需要用 文件来交互所以

1. 不需要同步,但交互慢;

2. 命令行,要中途终止的话,就非常复杂;(每次都要 processid = shell() 来记住线程编号)


所以,总结就是这方法非常适合,

- 少量网页交互的应用;

- VBA 次数少,但单独文件大的 上下传;(至少线程分离,你的 Access 死掉都可以在续传!)



一句VBA 把 图片拿下的方法就是

processId=Shell( "curl --url http://www.baidu.com/img/baidu_jgylogo3.gif --output tmp.gif")




Access软件网交流QQ群(群号:198465573)
 
 相关文章
VB局域网类共享文件夹的上传和下载  【qi  2011/11/21】
access开发平台--上传下载/添加附件的示例  【风行  2012/4/19】
【access源码示例】上传图片或附件到指定文件夹或共享文件夹的通...  【金宇  2012/6/1】
【access源码示例】同一个产品上传多个图片示例  【金宇  2012/7/2】
【Access源码示例】同一个产品上传多个附件示例  【金宇  2012/7/9】
VBA http post 上传 multipart/form-d...  【dbaseIIIer  2012/12/15】
常见问答
技术分类
相关资源
文章搜索
关于作者

何保辛

文章分类

文章存档

友情链接