Solved

Is there a function that does the opposite of URLDownloadToFile() ex. put a file to a URL in c++?

Posted on 2010-09-24
5
478 Views
Last Modified: 2012-06-27
Is there a function that does the opposite of URLDownloadToFile() ex. put a file to a URL in c++?
0
Comment
Question by:ken355
  • 3
  • 2
5 Comments
 
LVL 86

Accepted Solution

by:
jkr earned 500 total points
ID: 33754417
Unfortunately no, since things are more complex here. Ther are a few things to consider: If the file is binary, you need to base64 encode it (see http://www.codeproject.com/KB/cpp/base64coding.aspx - "Base64 Encoding and Decoding"). Then, you can send the file as outlined in the sample code at http://support.microsoft.com/kb/165298 ("How to simulate a Form POST request by using WinInet") with some changes:
   static TCHAR hdrs[] =

      _T("Content-Type: multipart/mixed");

   static TCHAR data[] = /* contains encoded file */;

  static LPSTR accept[2]={"*/*", NULL};



   // for clarity, error-checking has been removed

   HINTERNET hSession = InternetOpen("MyAgent",

      INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);

   HINTERNET hConnect = InternetConnect(hSession, _T("ServerNameHere"),

      INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);

   HINTERNET hRequest = HttpOpenRequest(hConnect, "POST",

      _T("FormActionHere"), NULL, NULL, accept, 0, 1);

   HttpSendRequest(hRequest, hdrs, strlen(hdrs), data, strlen(data));

   // close any valid internet-handles

Open in new window

0
 

Author Comment

by:ken355
ID: 33754548
on the HTTPOpenRequest should i be using the PUT verb? instead of the POST?
0
 
LVL 86

Expert Comment

by:jkr
ID: 33754788
Files are usually transferred via POST - if your server accepts PUT, you can change that of course.
0
 

Author Comment

by:ken355
ID: 33756793
thank you i understand what is going on, last question is regarding HttpOpenRequest(hConnect, "POST",
      _T("FormActionHere"), NULL, NULL, accept, 0, 1);

The lpszObjectName parameter ex. "FormActionHere" (the name of the target object of the verb) should this be the filename that i am sending?
0
 

Author Closing Comment

by:ken355
ID: 33765300
Quick response
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Suggested Solutions

Entering a date in Microsoft Access can be tricky. A typo can cause month and day to be shuffled, entering the day only causes an error, as does entering, say, day 31 in June. This article shows how an inputmask supported by code can help the user a…
Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, it’s also …
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

759 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now