C++ 开发mobile程序得图片上传问题
请大家帮帮菜鸟 看一下下面的代码 :手机端以wap形式连接得时候上传图片不成功,以internet形式连接的时候可以上传图片,不知道问题出在那里,还是某些技术没弄懂!请大家指教:
HRESULT ImageUpLoad(LPCWSTR tUrl, LPCWSTR tFileName)
{
HRESULT hr = S_OK;
HANDLE hFile = 0;
ULONG cbWritten = 0;
DWORD dwSizeLow = 0,
dwSizeHigh = 0,
dwError = 0,
dwBytes = 0;
ULARGE_INTEGER uli = {0};
BOOL bRet;
int i = 0;
BYTE *pAllbyteData = NULL;
hFile = CreateFile(tFileName, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
hr = E_INVALIDARG;
goto Error;
}
dwSizeLow = GetFileSize (hFile, & dwSizeHigh);
if (dwSizeLow == 0xFFFFFFFF &&
(dwError = GetLastError()) != NO_ERROR )
{
hr = E_FAIL;
goto Error;
}
HINTERNET hOpen;
HINTERNET hConnect;
HINTERNET hRequest;
DWORD dwBytesWritten;
DWORD dwByteToRead = 0;
DWORD dwSizeOfRq = 4;
int iResult = 0;
DWORD dwSize;
CHAR szBuffer[1024];
FillMemory(szBuffer, 1024, 0);
if (!(hOpen = InternetOpen(L"EXAMPLE", INTERNET_OPEN_TYPE_PRECONFIG, NULL, INTERNET_INVALID_PORT_NUMBER, 0)))
{
hr = GetLastError();
printf("%d", hr);
goto Error;
}
if (!(hConnect = InternetConnect(hOpen, SERVERIP, 8000, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0)))
{
hr = GetLastError();
printf("%d", hr);
goto Error;
}
if (!(hRequest = HttpOpenRequest (hConnect, L"POST",tUrl, L"HTTP/1.1", NULL, 0, INTERNET_FLAG_MAKE_PERSISTENT,
0)))
{
hr = GetLastError();
printf("%d", hr);
goto Error;
}
INTERNET_BUFFERS inBuf;
ZeroMemory(&inBuf, sizeof(INTERNET_BUFFERS));
inBuf.dwStructSize = sizeof(INTERNET_BUFFERS);
inBuf.lpvBuffer = NULL;
inBuf.dwBufferLength = dwSizeLow;
inBuf.dwBufferTotal = dwSizeLow;
SetLastError(0);
BOOL bSendRequest = HttpSendRequestEx(hRequest, &inBuf,NULL, NULL, NULL);
if (bSendRequest)
{
while (ReadFile(hFile, szBuffer, 1024, &dwBytes, NULL)&& (dwBytes!=0))
{
bRet=InternetWriteFile( hRequest, szBuffer, dwBytes, &dwBytesWritten);
if (! bRet)
{
hr = GetLastError();
goto Error;
}
}
}
else
{
iResult = GetLastError();
printf("%d", iResult);
goto Error;
}
while (! HttpEndRequest(hRequest,NULL,NULL,NULL))
{
}
Error:
delete[] (pAllbyteData);
if(hFile != INVALID_HANDLE_VALUE && hFile != 0)
{
CloseHandle(hFile);
}
if (hOpen)
{
InternetCloseHandle (hOpen);
}
if (hConnect)
{
InternetCloseHandle (hConnect);
}
if (hRequest)
{
InternetCloseHandle (hRequest);
}