2016-03-28 21 views
1

ワトソンは、次のコードがあります。ダイアログIBM - - カールPHP Laravel

curl -u "{username}":"{password}" 
    -X POST 
    --form [email protected] 
    --form name=templateName 
    "https://gateway.watsonplatform.net/dialog/api/v1/dialogs" 

を私持っている:

$ch = curl_init(); 
    $data['name'] = $this->post['name'].";type:form"; 
    $data['file'] = $this->getCurlValue($this->post['file'], $this->post['nombre']); 

    curl_setopt($ch, CURLOPT_URL, $this->url.$this->metodo); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); 
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, true); 
    curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}:{$this->pass}"); 

    if(count($this->post) > 0){ 
     //curl_setopt($ch, CURLOPT_PUT, 1); 
     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    } 
    $output = curl_exec($ch); 
    curl_close($ch); 
    json_decode($output); 

ます$ this->ポストが...

$data = Request::only('name', 'file'); 

そして、私は答えとしてのみ得る:{}

私が逃しているものは? !

おかげでみんな...まず時間がカールしてアップロードファイルを送信しよう:

+0

笑... PUTやDELETEメソッド必要があると述べ

if (function_exists('curl_file_create')) { return curl_file_create($path, $file['type'], $file['name']); } $value = "@{$path};filename=" . $file['name']; $value .= ';type=' . $file['type']; return $value; 

愚かMSG。ターミナルでのカールはとても簡単です。また、 "@"、buuut、Curl Fileで "@"を非推奨としています... – carlos

答えて

0

cは私が想像よりも簡単でした。

ストア:

$data = Request::only('name', 'file'); 

$nombre = time().".".Request::file('file')->getClientOriginalExtension(); 
Request::file('file')->move(base_path() . '/public/dialogos/', $nombre); 

$data['path'] = base_path() . '/public/dialogos/'.$nombre; 
$data['file'] = $_FILES['file']; 

カール:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $this->url.$this->metodo); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}:{$this->pass}"); 

if(count($this->post) > 0){ 
    $datos['name'] = $this->post['name']; 
    $datos['file'] = $this->getCurlValue($this->post['file'], $this->post['path']); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $datos); 
} 
$output = curl_exec($ch); 
curl_close($ch); 
return json_decode($output); 

getCurlValue($ファイル、$パス);私はPHPでそれを試してみて、私は仕事を得るcan`t