VC http上传图片,不是很明白,帮忙指点下

xiaoguailong3 2011-07-12 10:31:43
html页面请求:成功,在页面上浏览一张图片,上传可以成功
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<form action="http://127.0.0.1/index.php" method="post" enctype="multipart/form-data" name="form1" id="form1">

<input name="AC" type="text" id="AC" value="SendImg" />
<input name="UserID" type="text" id="UserID" value="140606" />
<input name="Key" type="text" id="Key" value="xxx" />
<input name="ImgID" type="text" id="ImgID" value="140606" />
<input name="GroupID" type="text" id="GroupID" value="102" />
<input name="IMG" type="file" id="IMG" />
<input type="submit" name="Submit" value="提交" />
</form>
</body>
</html>

在VC里应该怎么post图片数据呢???
...全文
263 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
vc通过http上传图片,楼主有做好的工程文件么,发给我看看吧
xiaoguailong3 2011-07-12
  • 打赏
  • 举报
回复
抓包解决了!
Eleven 2011-07-12
  • 打赏
  • 举报
回复
用抓包工具抓个包看看发送了哪些数据,然后利用WinINET的CInternetSession类相关的发送出去就可以了
见习学术士 2011-07-12
  • 打赏
  • 举报
回复

BOOL UseHttpSendReqEx(TCHAR *upFile)
{
HINTERNET hSession=NULL, hConnect=NULL, hRequest=NULL;

hSession = InternetOpen(_T("test"),INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);

hConnect = InternetConnect(hSession,_T("192.168.0.100"), INTERNET_DEFAULT_HTTP_PORT,
NULL,NULL,INTERNET_SERVICE_HTTP,INTERNET_FLAG_NO_CACHE_WRITE,NULL);

INTERNET_BUFFERS BufferIn = {0};
DWORD dwBytesRead;
DWORD dwBytesWritten;
BYTE pBuffer[1024]; // Read from file in 1K chunks
BOOL bRead, bRet;

BufferIn.dwStructSize = sizeof( INTERNET_BUFFERS );

hRequest = HttpOpenRequest (hConnect, "POST",
"/mydirectory/test.txt", NULL, NULL, NULL, 0, 0);
if (!hRequest)
{
printf("Failed to open request handle: %lu\n", GetLastError ());
return FALSE;
}

HANDLE hFile = CreateFile (upFile, GENERIC_READ, FILE_SHARE_READ,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
printf("\nFailed to open local file %s.", upFile);
return FALSE;
}

BufferIn.dwBufferTotal = GetFileSize (hFile, NULL);
printf ("File size is %d\n", BufferIn.dwBufferTotal );

if(!HttpSendRequestEx( hRequest, &BufferIn, NULL, HSR_INITIATE, 0))
{
printf( "Error on HttpSendRequestEx %lu\n",GetLastError() );
return FALSE;
}

DWORD sum = 0;
do
{
if (!(bRead = ReadFile (hFile, pBuffer, sizeof(pBuffer),
&dwBytesRead, NULL)))
{
printf ("\nReadFile failed on buffer %lu.",GetLastError());
break;
}
if (!(bRet=InternetWriteFile( hRequest, pBuffer, dwBytesRead,
&dwBytesWritten)))
{
printf ("\nInternetWriteFile failed %lu", GetLastError());
break;
}
sum += dwBytesWritten;
}
while (dwBytesRead == sizeof(pBuffer)) ;

CloseHandle (hFile);
printf ("Actual written bytes: %d\n", sum);

if(!HttpEndRequest(hRequest, NULL, 0, 0))
{
printf( "Error on HttpEndRequest %lu \n", GetLastError());
return FALSE;
}
return TRUE;
}

wm_wf_comeon 2011-07-12
  • 打赏
  • 举报
回复
用工具截包看看就知道啦,比如httpwatch
tx183584 2011-07-12
  • 打赏
  • 举报
回复
这不是php吗

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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