上传activeX控件,怎么写啊,大家给点意见吧。

zjjhfwh 2006-06-13 12:49:54
C++的第一个任务,实现上传功能的activeX控件。要断点续传。 一点思路都没有。大家给点意见吧,谢谢
...全文
164 点赞 收藏 4
写回复
4 条回复
zjjhfwh 2006年06月13日
各位大哥。给点意见吧。先谢了
回复 点赞
zjjhfwh 2006年06月13日
有这方面源码吗?
回复 点赞
zjjhfwh 2006年06月13日
谢谢niying(逆颖
回复 点赞
niying 2006年06月13日
我这两天也搞这个,不过上传不成功.不知道什么原因,代码如下:
DWORD dwHttpRequestFlags= INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_EXISTING_CONNECT | INTERNET_FLAG_NO_AUTO_REDIRECT | INTERNET_FLAG_TRANSFER_BINARY;
CString csServer = "127.0.0.1";
INTERNET_PORT nPort = 80;

CInternetSession *pSession = new CInternetSession("upload");

CHttpConnection *pHttpConn = NULL;

pHttpConn = pSession->GetHttpConnection(csServer, nPort);

CHttpFile *pHttpFile = NULL;

CString csFile = "/aa.txt";
pHttpFile = pHttpConn->OpenRequest(CHttpConnection::HTTP_VERB_PUT, csFile, NULL, 1, NULL, NULL, dwHttpRequestFlags);
ASSERT( pHttpFile != NULL );

CFile File;
File.Open("C:\\aa.txt", CFile::modeRead);
int nLen = File.GetLength();
char *buffer = new char[nLen];
memset(buffer, 0, nLen);
File.Read(buffer, nLen);
File.Close();

/*INTERNET_BUFFERS BufferIn;
DWORD dwBytesWritten;
BOOL bRet;
BufferIn.dwStructSize = sizeof( INTERNET_BUFFERS ); // Must be set or error will occur
BufferIn.Next = NULL;
BufferIn.lpcszHeader = NULL;
BufferIn.dwHeadersLength = 0;
BufferIn.dwHeadersTotal = 0;
BufferIn.lpvBuffer = NULL;
BufferIn.dwBufferLength = 0;
BufferIn.dwBufferTotal = nLen; // This is the only member used other than dwStructSize
BufferIn.dwOffsetLow = 0;
BufferIn.dwOffsetHigh = 0;*/

//int res = pHttpFile->SendRequestEx(&BufferIn,NULL,HSR_INITIATE,0);
int res = pHttpFile->SendRequestEx(nLen);
if (res == 0)
MessageBox("send error.");
pHttpFile->Write(buffer, nLen);


pHttpFile->EndRequest();
pHttpFile->Close();
delete pHttpFile;
pHttpConn->Close();
delete pHttpConn;
pSession->Close();
delete pSession;

delete []buffer;
buffer = NULL;
回复 点赞
发动态
发帖子
ATL
创建于2007-09-28

3025

社区成员

4.8w+

社区内容

ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区公告
暂无公告