我使用了下面的脚本,该脚本将通过URL将图像上载到wp,但它失败了(调试导致“上载的文件无法移动到wp content/uploads/2016/03”)。但我想知道。。。上载的图像为778kb,upload\\u max\\u filesize in PHP-7 PHP。ini为100万。在本周开始时,此功能工作正常,但由于最近两天(没有任何更改),此功能将无法工作。
我使用了PHP版本7.0.4-5,函数按照CLI脚本加载(cronjob)。etc/php/7.0/cli/php。ini upload\\u max\\u filesize从2M更改为100M(post\\u max\\u size也从默认更改为100M)。目录/tmp和/var/www/domain上的权限。tld/htdocs/wp内容/上传无问题(chmod 0775)。2016和03号目录均由www data提供,并拥有0775的权利。
download\\u url()的临时文件也存在,并且是正确的jpg文件。我不知道在哪里可以找到错误。我已经在一个实时服务器上测试了它。。。同样的错误。
功能如下:
function setThumbnail($postid,$img,$isPreview=false) {
include_once(ABSPATH."/wp-admin/includes/media.php");
include_once(ABSPATH."/wp-admin/includes/file.php");
include_once(ABSPATH."/wp-admin/includes/image.php");
global $wpdb;
$tmp=download_url($img);
$filename=basename($img);
$file_arr[\'name\']=$filename;
$file_arr[\'tmp_name\']=$tmp;
if (is_wp_error($tmp)){
@unlink($file_arr[\'tmp_name\']);
$wpdb->insert($wpdb->prefix.\'ctcronlog\',array(\'created\'=>current_time(\'timestamp\'),\'doing\'=>\'download_thumb\',\'msg\'=>$tmp->get_error_message()),array(\'%d\',\'%s\',\'%s\'));
return false;
}
$id=media_handle_sideload($file_arr,$postid);
if(is_wp_error($id)){
@unlink($file_arr[\'tmp_name\']);
$errors=array();
foreach($id->get_error_messages() as $err){
$errors[]=$err;
}
$wpdb->insert($wpdb->prefix.\'ctcronlog\',array(\'created\'=>current_time(\'timestamp\'),\'doing\'=>\'upload_thumb\',\'msg\'=>var_export($errors,true)),array(\'%d\',\'%s\',\'%s\'));
return false;
}
$src=wp_get_attachment_url($id);
if($isPreview) {
set_post_thumbnail($postid,$id);
}
return $src;
}