 |
文件上传一般采用采用FTP较多,而HTTP用的较少,因为既慢又麻烦。在VC++ MFC中 包括WinInet类使得编写FTP客户端变得容易,其基本步骤如下:
1、实现建立CInternetSession对象;
2、使用CInternetSession::GetFtpConnection连接到FTP服务器;
3、使用上一步返回的CFtpConnection对象的CFtpConnection::SetCurrentDirectory设置当前目录;
4、使用CFtpConnection::OpenFile打开文件,在打开文件的同时也就设定了传输模式是二进制还是文本方式;
5、利用上一步得到的CInternetFile的CInternetFile::Write向服务器写数据,通常你要在写数据前将本地文件读入缓冲区;
6、使用CInternetException来处理可能遇到的错误;
7、当上传完成后,释放CInternetSession对象。
关于如何使用HTTP上传文件请参考微软的Knowledge Base的文章:“Q177188 FILE: Using HttpSendRequestEx for Large POST Requests”。
马海军来信建议说:我觉得这个问题回答得不够彻底。因为很多情况下还是需要在主页中让用户上传文件.必须用ISAPI来编写接收用户文件上传的程序,怎样用好CHttpServerContext来接收文件仍然是必须回答的问题。
回答:对于服务器端,你可以参考QA000661 "怎样用ISAPI接收HTTP文件上传"。
san的意见:
用户不一定用IIS。这是一个UNIX的例子,ANSI C写成的http://www.hku.nl/~pieter/SOFT/CGI/UPLOAD/html/UPLOAD.html
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, Internet编程, INET, www, internet, ie。
|