我已经制作了自定义状态并测试它是否为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。
答案 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;
}