• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1817
  • Last Modified:

PHP Curl - How to FTP string...

I am trying to use the curl library in PHP  to send some data to another server. I can not write to a file on the server and then transfer it. How can I tell PHP/Curl to transfer not from a file but from a variable I have prepared?
0
albee01
Asked:
albee01
  • 5
  • 3
2 Solutions
 
albee01Author Commented:
I believe what I need is to use is the CURLOPT_READFUNCTION callback but I am uncertain how to properly structure it.
0
 
steelseth12Commented:
php has built in FTP functions .. do need to use CURL ?
Have a look at http://www.php.net/manual/en/ref.ftp.php first.
0
 
albee01Author Commented:
Unfortunately, yes. PHP on the server I must use does not enable the ftp functions, only curl.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
steelseth12Commented:
ok ... here is some example code

<?php

$file = "sample.html"
$fp = fopen ($file, "r");


$ch = curl_init();


curl_setopt($ch, CURLOPT_URL,"ftp://username:password@ftp.example.com/path/to/file/file.html");
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
$error = curl_exec ($ch);

curl_close ($ch);
?>
0
 
albee01Author Commented:
Thanks for the code but that doesn't do what I need. Your example only transfers from a file. I can't write to a file. I am trying to transfer the contents of a variable, not the contents of a file.

$string = "Text to transfer";

I want to write $string to the remote file without writing a file locally.
0
 
steelseth12Commented:
In the example i raed the file into a variable. Its essentially the same thing.
Instead of

$file = "sample.html"
$fp = fopen ($file, "r");

use

$fp = "text to transfer";
0
 
albee01Author Commented:
I get this: curl_setopt(): supplied argument is not a valid File-Handle resource
0
 
nizsmoDeveloperCommented:
You are getting the error because the $fp variable is not a file handler, and the curl_setopt() is expecting a file handler as argument. I dont' think there is any way to send a variable through curl onto the ftp server.

Closest thing I could find was this, which may be of help:
http://www.web-development-blog.com/archives/tutorial-ftp-upload-via-curl/
0
 
albee01Author Commented:
I was leaning toward it not being possible. Thanks for the help. I'll split the points.
0

Featured Post

[Webinar On Demand] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

  • 5
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now