我正在尝试制作我的第一个WordPress插件,我有一个问题。
我想在WordPress中上传图像压缩器。在使用WordPress本机上传功能上传之前,我使用prefilter选项处理图像。
事实是图像上传,但没有被压缩。但一切似乎都很好,当我接收发送的请求并将其复制到我的计算机终端时,它就可以了。
我现在使用的服务器是我的本地主机,由xampp提供支持。 pngquant的另一个类似功能正常工作,所以我认为这不是服务器问题。
这是我的代码:
function compressed_image_upload($file){
$ext = pathinfo($file['name'],PATHINFO_EXTENSION);
/*Use of guetzli*/
$allowed = array("jpg", "jpeg");
if(in_array($ext,$allowed)) {
echo "<pre>";
var_dump($file);
echo "</pre>";
$guetzli_path = get_home_path()."guetzli"; /*Preparation of guetzli command*/
if(is_executable($guetzli_path)) {
echo "guetzli executable : yes \n";
$request = $guetzli_path." ".$file['tmp_name']." ".$file['tmp_name'];
exec($request, $output, $return); /*Execution of guetzli*/
echo "<pre> I'm there ! \n";
echo "request : $request \n";
echo "output : $output \n";
echo "return : $return \n";
echo "</pre>";
}
}
return $file;
}
register_activation_hook( __FILE__, 'compressed_image_upload' );
结果如下。正如我之前所说,我的图像是上传的,但好像exec行没有做任何事情。
有什么想法吗? (关于slackoverflow的第一篇文章,如果这个问题不够清楚,那就是仁慈的^^。如果缺乏信息,我很乐意添加信息。)
nb:guetzli的工作原理如下:“executable_path input_file_path output_file_path”。在我的情况下,我希望它擦除临时文件,以便下载上传步骤使用它。