尝试使用cURL删除图像但是将NULL作为响应

时间:2015-06-29 18:19:17

标签: php session curl opencart

我已经制作了自定义状态并测试它是否为2并且在此基础上我试图删除产品的主图像。起初,我不知道cURL需要特殊处理,如果使用会话,我被重定向到管理员登录屏幕。这个修改应该进入文件admin/controller/catalog/product(当然使用VQMod)。直到现在我才得到NULL来回复。

if((int) $this->request->post['status'] == 2) {
    if(isset($this->request->post['image'])) {
        $params = array(
            'path' => $this->request->post['image']
        );
        $defaults = array(
            CURLOPT_URL => $this->url->link('common/filemanager/delete', 'token=' . $this->session->data['token'], 'SSL'),
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => $params,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_COOKIESESSION => true,
            CURLOPT_COOKIEJAR => 'cookie-jar',
            CURLOPT_COOKIEFILE => '/home/u32807/tmp'
        );
        $ch = curl_init();
        curl_setopt_array($ch, $defaults);
        $ouput = curl_exec($ch);
        if($output === false) {
            echo 'Curl error: ' . curl_error($ch);
            die();
        }
        else {
            var_dump($output);
            die();
        }
    }
}

我尝试评论CURLOPT_POSTFIELDS并尝试将其作为一个空数组,但仍然是NULL。因此我必须设置连接的方式有问题,但我不知道从哪里开始调试它。 Hewp pweeze! :/ OpenCart版本是1.5.6.4。

1 个答案:

答案 0 :(得分:0)

你需要为curl添加一个部分,即

CURLOPT_CUSTOMREQUEST => '删除',

检查我的删除功能:

公共函数curl_delete_function($ mypath,$ json ='')

{

$url =$this->__url.$mypath;

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");

curl_setopt($ch, CURLOPT_POSTFIELDS, $json);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);

$result = json_decode($result);

curl_close($ch);


return $result;

}