我知道我可以使用这个语法合成来发送一个使用php,post和curl的文件。
$post = array(
"file_box"=>"@/path/to/myfile.jpg",
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
如何获取字符串,构建临时文件并使用完全相同的语法发送它?
更新: 我更喜欢使用tmpfile()或php:// memory,所以我不必处理文件创建。
答案 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