472,353 Members | 1,898 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,353 software developers and data experts.

C++ client upload to PHP server

I'm having issues transferring a file from a WEB client running a C++ application to a PHP server script. I have debugged through the C++ side and no errors are reported, but the file does not appear on the server. My current environment is a Vista business system running IIS. I developed the C++ app using Microsoft's Visual Studio. I know the configuration is correct as the application does communicate with PHP scripts to transfer XML data back and forth. I cannot seem to get the file upload to work. I have attached both the C++ and PHP sides. Any assistance would be greatly appreciated.
C++ code
Expand|Select|Wrap|Line Numbers
  1. hFileXfer = InternetOpen("FileSession", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
  2. if(hFileXfer != 0)
  3.     hConnect = InternetConnect(hFileXfer, "localhost", 80, "", "", INTERNET_SERVICE_HTTP, 0,0);
  4.     if(hConnect != 0)
  5.     {
  6.         DWORD flags;
  7.         flags = INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_PRAGMA_NOCACHE;
  8.         hReq = HttpOpenRequest(hConnect,"POST", "./TargetDir/ClientUpload.php", NULL, NULL, NULL, flags, 0);
  9.         if(hReq != 0)
  10.         {
  11.             if(HttpSendRequestEx(hReq, NULL, NULL,0, NULL))
  12.             {
  13.                 do
  14.                 {
  15.                     if(bRead = (bool)ReadFile(hSrcFile,&pBuffer, sizeof(pBuffer), &dwBytesRead, NULL))
  16.                     {
  17.                         if(!(bRtn =(bool)InternetWriteFile(hReq, pBuffer, dwBytesRead, &dwBytesWritten)))
  18.                         {
  19.                             DWORD DwError = GetLastError();
  20.                             *ErrStr = "Unable to write file to server";
  21.                             break;
  22.                         }
  23.                         dwTotalWritten += dwBytesWritten;
  24.                     }
  25.                     else
  26.                     {
  27.                         DWORD DwError = GetLastError();
  28.                         *ErrStr = "Error reading source file";
  29.                         bRtn = false;
  30.                         break;
  31.                     }
  32.                 } while(dwTotalWritten < dwFileSize);
  33.                 CloseHandle(hSrcFile);
  34.                 TCHAR            RtnBuffer[1000];
  35.                 DWORD            ret;
  36.                 bRtn = InternetReadFile(hReq, RtnBuffer, 1000, &ret);
  37.                 InternetCloseHandle(hReq);
  38.                 InternetCloseHandle(hConnect);
  39.                 InternetCloseHandle(hFileXfer);
  40.             }
  41.         }
  42.     }
  43. }

PHP code
Expand|Select|Wrap|Line Numbers
  1. <?php
  2. $uploaddir = '/TargetDir/ClientUploads/';
  3. $uploadfile = $uploaddir . basename($_FILES['file']['name']);
  4.  
  5. echo '<pre>';
  6. if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
  7.     echo "File is valid, and was successfully uploaded.\n";
  8. } else {
  9.     echo "Possible file upload attack!\n";
  10. }
  11.  
  12. echo 'Here is some more debugging info:';
  13. print_r($_FILES);
  14.  
  15. print "</pre>";
  16.  
  17. ?>
Apr 21 '09 #1
7 3537
Markus
6,050 Expert 4TB
What output do you get? Any PHP errors?
Apr 21 '09 #2
Appears I get nothing from PHP side. I am not even sure it gets activated. I think I remember putting in some code on the PHP to write to an MySQL Db and nothing appeared, and it was the first thing I did
Apr 21 '09 #3
Markus
6,050 Expert 4TB
Unfortunately I am out of ideas for this :/
I know squat about C++.

Maybe someone else will be able to help.
Apr 21 '09 #4
UPDATE: I think I got the C++ side working. I can go through the code and no errors are reported. The PHP script gets executed but there is no file there
Expand|Select|Wrap|Line Numbers
  1. $connection = mysql_connect('localhost','root',''); // or die('Error: ' . mysql_error()); 
  2. if(!$connection)
  3.    $StatusStr = 'DatabaseError';
  4. else
  5. {
  6.    mysql_select_db("watchdog", $connection);
  7.    $sql = "INSERT INTO testTbl ( TestSeen) VALUES ( '1')";
  8.    $Result = mysql_query($sql);
  9. }
  10. $uploaddir = 'ClientUploads/';
  11. if(empty($_FILES["uploaded_file"]))
  12. {
  13.     $sql = "INSERT INTO testTbl ( TestSeen) VALUES ( 'EMPTY')";
  14.     $Result = mysql_query($sql);
  15. }
  16.  
In the table I see 1 followed by EMPTY
Apr 22 '09 #5
Markus
6,050 Expert 4TB
I'm not sure you're able to send a file like that and have PHP recognise it. Does C++ have access to a cURL library?
Apr 22 '09 #6
NOPE.
This should work.
I get no errors on the C++ side.
Apr 22 '09 #7
Markus
6,050 Expert 4TB
If there is no data in the FILES array, then your C++ application is not submitting the data correctly.
Apr 22 '09 #8

Sign in to post your reply or Sign up for a free account.

Similar topics

3
by: WM Chung | last post by:
Hello all, My dotnet application configuration is that the client, Web server and database all reside in 3 different computers. There is a...
1
by: alfredfx | last post by:
i'm planning to develop a client server system the client and server both able to upload picture client will upload the picture to a folder that...
6
by: jake | last post by:
How do you get or save a file from/to a client (button on web page) once they are authenticated? The client could be Mac, Linux or Windows. Can I...
3
by: Rob Nicholson | last post by:
The following code added to Page_Load works a treat: Response.ContentType = "application/zip" Response.AppendHeader("Content-Disposition",...
9
by: CGW | last post by:
I asked the question yesterday, but know better how to ask it, today: I'm trying to use the File.Copy method to copy a file from a client to...
6
by: dinoo | last post by:
Hi, I would appreciate if some one could help me out. I have to read a client side ini file in Aspx page and use that data in server side...
10
by: Paul | last post by:
Hi I am using the HtmlInputFile control to upload a file from a client to a server. I have a browse to find the file on the server but need to...
12
by: SAL | last post by:
Hello, Is it possible to read a CSV from the Client, and bind my Datagrid to the data in the CSV file without uploading the file to the Server...
3
by: pbd22 | last post by:
Hi There. I think i need some software design help. I have a page, server.aspx, that starts uploading video files when it is loaded via hidden...
1
by: SGilch | last post by:
I am new to javascript, and wondering if it is capable of implementing a browsing mechanism for the browser to upload the names of files in a client...
0
by: Naresh1 | last post by:
What is WebLogic Admin Training? WebLogic Admin Training is a specialized program designed to equip individuals with the skills and knowledge...
0
jalbright99669
by: jalbright99669 | last post by:
Am having a bit of a time with URL Rewrite. I need to incorporate http to https redirect with a reverse proxy. I have the URL Rewrite rules made...
0
by: Matthew3360 | last post by:
Hi there. I have been struggling to find out how to use a variable as my location in my header redirect function. Here is my code. ...
2
by: Matthew3360 | last post by:
Hi, I have a python app that i want to be able to get variables from a php page on my webserver. My python app is on my computer. How would I make it...
0
by: Arjunsri | last post by:
I have a Redshift database that I need to use as an import data source. I have configured the DSN connection using the server, port, database, and...
0
hi
by: WisdomUfot | last post by:
It's an interesting question you've got about how Gmail hides the HTTP referrer when a link in an email is clicked. While I don't have the specific...
0
by: Carina712 | last post by:
Setting background colors for Excel documents can help to improve the visual appeal of the document and make it easier to read and understand....
0
BLUEPANDA
by: BLUEPANDA | last post by:
At BluePanda Dev, we're passionate about building high-quality software and sharing our knowledge with the community. That's why we've created a SaaS...
0
by: Rahul1995seven | last post by:
Introduction: In the realm of programming languages, Python has emerged as a powerhouse. With its simplicity, versatility, and robustness, Python...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.