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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Unable to start eclipse ? 17 128
passing data from one form to another form in c++ 27 75
Path to Python 9 105
Beginner to Unreal Engine 4 5 57
A short article about a problem I had getting the GPS LocationListener working.
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

911 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

21 Experts available now in Live!

Get 1:1 Help Now