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
484 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

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
numbers ascending pyramid 101 213
Issues with C++ Class 19 101
Precision Problem in C++ 7 44
Delphi: barcode reading on android platform 1 51
Does the idea of dealing with bits scare or confuse you? Does it seem like a waste of time in an age where we all have terabytes of storage? If so, you're missing out on one of the core tools in every professional programmer's toolbox. Learn how to …
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…
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.

828 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