2016-03-28 88 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); 

$这个 - >后有...

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

我只能回答:{}

我失踪了什么? !

谢谢大家......第一次尝试发送一个文件上传与卷曲:C

+0

我尝试用PHP和我不能老是找份工作。在终端进行卷曲非常简单。此外,我尝试使用“@”,buuut,带“@”的卷曲文件弃用... – carlos

回答

0

这比我想象的简单。

商店:

$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($文件,$路径);

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; 

愚蠢的味精是说我需要PUT或DELETE方法...哈哈