Jump to content

Archived

This topic is now archived and is closed to further replies.

Doqrs

Upload File to a Remote Server

Recommended Posts

Hello,
I would like to have a file upload form with an action="upload.php". In the upload.php, i would like CURL or fsockopen to upload the file to a remote server via another file upload form and get/parse the output of the response page. I am fairly proficient with CURL but can not find out how to perform this task. Any help would be greatly appreciated.
Thanks

Share this post


Link to post
Share on other sites
have you checked out at the curl_setopt area on php.net or usphp.com?

http://usphp.com/manual/en/function.curl-setopt.php

There's an example toward the bottom that looks like exactly what you're looking for:
[code=php:0]<?php

$file = "file_to_upload.txt";
$submit_url = "http://www.url_to_upload_to.com/upload_page.php";

$formvars = array("cc"=>"us \n");
$formvars[variable_1] = "bla bla \n";
$formvars[variable_2] = "bla bla \n";
$formvars[variable_3] = "bla bla \n";
$formvars[variable_4] = "bla bla \n";
$formvars[upfile] = "@$file"; // "@" causes cURL to send as file and not string (I believe)

   // init curl handle
   $ch = curl_init($submit_url);
   curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");  //initiates cookie file if needed
   curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");  // Uses cookies from previous session if exist
   curl_setopt($ch, CURLOPT_REFERER, "http://www.last_url_for_referer_logs.com");  //if server needs to think this post came from elsewhere
   curl_setopt($ch, CURLOPT_VERBOSE, 1);
   curl_setopt($ch, CURLOPT_HEADER, 1);
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); // follow redirects recursively
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_POSTFIELDS, $formvars);

   // perform post
   echo $pnp_result_page = curl_exec($ch);
   curl_close ($ch);

?>[/code]

Share this post


Link to post
Share on other sites
Yes, I have actually run across this very script. Only problem i have with it is the $file variable and getting that to work. It doesn't seem to work when you give it the exact path (C:\Documents and....) but i am not very knowledgeable on what exactly the file form input is giving the php file. Thanks for the help

Share this post


Link to post
Share on other sites
you can refer to it recently uploaded files using the files array.

[code=php:0]$file= $_FILES[key($_FILES)]['tmp_name'];[/code] should provide the temporary filename to the script and upload just fine.

Share this post


Link to post
Share on other sites
after much adjustment to suit the needs that i didn't list, i was able to get it to work. Thank you very much. :)

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.