使用curl和php将字符串作为文件发送

时间:2011-05-27 08:59:25

标签: php post curl

我知道我可以使用这个语法合成来发送一个使用php,post和curl的文件。

$post = array(
    "file_box"=>"@/path/to/myfile.jpg",
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 

如何获取字符串,构建临时文件并使用完全相同的语法发送它?

更新: 我更喜欢使用tmpfile()或php:// memory,所以我不必处理文件创建。

3 个答案:

答案 0 :(得分:9)

您可以使用临时目录中的tempnam创建文件:

$string = 'random string';

//Save string into temp file
$file = tempnam(sys_get_temp_dir(), 'POST');
file_put_contents($file, $string);

//Post file
$post = array(
    "file_box"=>'@'.$file,
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

//do your cURL work here...

//Remove the file
unlink($file);

答案 1 :(得分:0)

您可以使用file_put_contents创建临时文件,只需确保目标目录是可写的。

$path = '/path/to/myfile.txt';    
file_put_contents($myData, $path);

$post = array(
    "file_box"=>"@".$path,
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

# Delete the file if you don't need it anymore
unlink($path);

答案 2 :(得分:0)

来自http://php.net/manual/en/class.curlfile.php#115161

dsqd => false
'ph' => true
'sw')) => true
dfaasf => false