I'm transferring files from an existing http request using cURL like so...
$postargs = array(
'nonfilefield' =>'nonfilevalue',
'fileentry' => '@'.$_FILES['thefile']['tmp_name'][0]
);
$ch = curl_init('http://localhost/curl/rec.php');
curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_POST,TRUE);
curl_setopt($ch,CURLOPT_POSTFIELDS,$postargs);
curl_exec($ch);
curl_close($ch);
我可以使用tmp_name的唯一方法是使用tmp_name,但不会发送它。但是,当我稍后想要命名文件时,我会丢失名称值。
有没有办法保留$ _FILES数组,因为它通常没有卷曲?我也在我的脚本中使用了一组文件字段,所以目前我必须将我的多维数组转换为单个维度才能使其工作
答案 0 :(得分:0)
您可以使用move_uploded_file()将文件重命名为原始名称。
move_uploded_file($_FILES['thefile']['tmp_name'][0], $your_uploads_dir.'/'.$_FILES['thefile']['name'][0]);
$postargs = array(
'nonfilefield' =>'nonfilevalue',
'fileentry' => '@'.$your_uploads_dir.'/'.$_FILES['thefile']['name'][0]);
答案 1 :(得分:0)
没关系,这就足够了......
$postargs = array(
'nonfilefield'=>'nonfilevalue',
$_FILES['thefile']['name'][0] => '@'.$_FILES['thefile']['tmp_name'][0]
);