PHP curl文件上传

时间:2014-06-13 08:59:20

标签: php curl upload

您好我需要帮助来创建curl发送的fie脚本。 我有两个目录:'from'&在我的localhost中'到' 我的文件在目录'from'中,我的文件名是'test.docx'

我想在目录'to'文件中发送该文件,可以使用同名test.docx 我有下一个示例代码:

$path='from/test.docx';
$size=filesize($path);
$info=pathinfo($path);
$name=$info['filename'];
$open=fopen($path, "rb");
$content=fread($open,$size);
fclose($open);
$ar=array('content'=>$content,'fname'=>$name);
$input=array('input'=>$ar);
$datas=json_encode($input);
$ch=curl_init('localhost/to/accept.php');
curl_setopt($chs, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($chs, CURLOPT_POSTFIELDS, $datas);
curl_setopt($chs,CURLOPT_RETURNTRANSFER,true);
curl_setopt($chs, CURLOPT_HTTPHEADER, array(
    'Content-Type:application/json',
    'Content-Length: ' . strlen($datas))
);


$responses=curl_exec($chs);
print_r($responses);  

接下来是我的接受文件:
accept.php

$initc = CJSON::decode(file_get_contents('php://input'));
var_dump($initc);

但是我得到的结果是null,我的结果是下一个:

array (size=1)
  'input' => 
    array (size=2)
      'content' => null
      'fname' => string 'test' (length=4)   

Maby的其他重要信息是,我将一个文件从10 kb块化到另外10个文件(一个kb),只是其中一个较小的文件是文件test.docx 你知道任何溶剂吗,我读了一些解决方法,但我不明白他们可以让我用我的例子来表达吗?

1 个答案:

答案 0 :(得分:0)

为什么你没有使用

curl_setopt($ch, CURLOPT_POST, true);

而不是

curl_setopt($chs, CURLOPT_CUSTOMREQUEST, "POST");