HINTERNET Initialize = InternetOpen(0, //Name of Application Calling (Agent)
INTERNET_OPEN_TYPE_DIRECT, //Access Type
NULL, //Proxy Name
NULL, //Proxy Bypass
0); //Flags
HINTERNET hConnect = InternetConnect(Initialize, // InternetOpen handle
server, // Server name
80, // HTTPS port
user, // User name
pass, // User password
INTERNET_SERVICE_HTTP, // Service
0, // Flags
0); // Context
FtpSetCurrentDirectoryW(hConnect, path);
HINTERNET hReq = HttpOpenRequest(hConnect, //InternetConnect handle
L"POST", //Method
r1, //Object name
NULL, //Version
NULL, //Referrer
NULL, //Extra headers
INTERNET_FLAG_KEEP_CONNECTION &&
INTERNET_FLAG_NO_CACHE_WRITE, //Flags
0); //Context
HANDLE hFile = CreateFile(upFile, //File name
GENERIC_READ, //Desired Access
FILE_SHARE_READ, //Share Mode
NULL, //Security Attribute
OPEN_EXISTING, //Creation Disposition
FILE_ATTRIBUTE_NORMAL, //Flags and Attributes
NULL); //Template File
if(hFile == INVALID_HANDLE_VALUE)
{
printf("\nFailed to open local file %s.", upFile);
return FALSE;
}
//DWORD BufferIn.dwBufferTotal = GetFileSize(hFile, NULL);
//printf("File size is %d\n", BufferIn.dwBufferTotal);
BOOL bRead;
BOOL bRead1;
BYTE pBuffer[1024];
BYTE pBuffer1[1024];
DWORD dwBytesRead;
BOOL bRet;
bool result;
DWORD dwBytesWritten;
if(HttpSendRequestEx(hReq, NULL, 0, NULL,0))
{
DWORD sum = 0;
do
{
if(!(bRead = ReadFile(hFile, pBuffer, sizeof(pBuffer), &dwBytesRead, NULL)))
{
printf("\nReadFile failed on buffer %lu.", GetLastError());
result = FALSE;
break;
}
if(!(bRet=InternetWriteFile(hReq, pBuffer, dwBytesRead, &dwBytesWritten)))
{
printf("\nInternetWriteFile failed %lu", GetLastError());
if (GetLastError() == 12019)
{
cout << "\nERROR_INTERNET_INCORRECT_HANDLE_STATE\n" << endl;
}
result = FALSE;
break;
}
sum += dwBytesWritten;
}
while(dwBytesRead == sizeof(pBuffer));
CloseHandle(hFile);
printf("\nActual written bytes: %d\n", sum);
}
/*close file , terminate server connection and
deinitialize the wininet library*/
InternetCloseHandle(hReq);
InternetCloseHandle(hConnect);
InternetCloseHandle(Initialize);
It runs and not shows any errors.
But my problem is that not make any file and write on that in my server.
Other my problem is how define path in my code?
for example my file is in www.www.com/reza
how make that read my file in "reza" folder(path).
Regards,
Last edited by rezame; September 18th, 2011 at 01:14 PM.
No, you are not a "new".
You have already got a similar request in this post about 3 months back. And you could change your post adding proper Code (not PHP since we discuss C++, not PHP) tags.
No, you are not a "new".
You have already got a similar request in this post about 3 months back. And you could change your post adding proper Code (not PHP since we discuss C++, not PHP) tags.
Thanks for your advise.
I updated code by Code Tag.
I hope anybody can help me for solve this code problem
Regards,
If this function fails you do show a messagebox alerting the user to an error...but do not show/log the error...
Try using GetLastError() in the failure logic then insert that error into a string and displaying the exact error and not just a general error...just like you did for InternetConnect()
You can also lookup the function InternetGetLastResponseInfo() as this might be of some help in debugging the actual error.
Jim
ATP BE400 CE500 (C550B-SPW) CE560XL MU300 CFI CFII
"The speed of non working code is irrelevant"... Of course that is just my opinion, I could be wrong.
"Nothing in the world can take the place of persistence. Talent will not; nothing is more common than unsuccessful men with talent. Genius will not; unrewarded genius is almost a proverb. Education will not; the world is full of educated derelicts. Persistence and determination are omnipotent. The slogan 'press on' has solved and always will solve the problems of the human race."...Calvin Coolidge 30th President of the USA.
If this function fails you do show a messagebox alerting the user to an error...but do not show/log the error...
Try using GetLastError() in the failure logic then insert that error into a string and displaying the exact error and not just a general error...just like you did for InternetConnect()
You can also lookup the function InternetGetLastResponseInfo() as this might be of some help in debugging the actual error.
HttpSendRequest performs both the send and the receive for the response. This does not allow the application to send any extra data beyond the single buffer that was passed to HttpSendRequest. ...
After the call to HttpSendRequestEx, send the remaining data by calling InternetWriteFile. Finally, follow up with a call to HttpEndRequest.
Bookmarks