Example:
["images"]=>
array(6) {
[0]=>
array(2) {
["src"]=>
string(112) "https://nz.tradevine.com/BlobStorage/GetFullPhoto?photoID=3783754511503592459&organisationID=3468490059683634443"
["position"]=>
string(1) "0"
}
图像是
我收到错误:“错误:图像无效:抱歉,不允许您上传此文件类型。[woocommerce_api_product_image_upload_error]
我更改 WP 配置文件以允许任何类型的文件上传。
定义('ALLOW_UNFILTERED_UPLOADS',true);
它尝试上传一个名为:GetFile Photo 的文件
至.jpg
它不起作用。
这通常工作得很好。
有任何想法吗?
由于 url 的名称中不包含文件扩展名,Wordpress 将其视为没有扩展名的文件,从而导致失败wp_check_filetype_and_ext
test.
您可以添加过滤器来添加.jpg
到文件名的末尾(如果它没有扩展名并且实际上是 jpeg,如下所示)
add_filter('wp_handle_sideload_prefilter', 'add_jpg_if_no_extension');
function add_jpg_if_no_extension($file){
if(!pathinfo($file['name'], PATHINFO_EXTENSION) && mime_content_type($file['tmp_name']) == 'image/jpeg'){
$file['name'] .= '.jpg';
}
return $file;
}
EDIT:适用于所有图像类型的更完整的解决方案
add_filter('wp_handle_sideload_prefilter', 'add_extension_if_none_exists');
function add_extension_if_none_exists($file){
if ( pathinfo( $file['name'], PATHINFO_EXTENSION ) ) {
return $file;
}
$real_mime = wp_get_image_mime( $file['tmp_name'] );
$mime_to_ext = apply_filters(
'getimagesize_mimes_to_exts',
array(
'image/jpeg' => 'jpg',
'image/png' => 'png',
'image/gif' => 'gif',
'image/bmp' => 'bmp',
'image/tiff' => 'tif',
'image/webp' => 'webp',
)
);
if ( ! empty( $mime_to_ext[ $real_mime ] ) ) {
$file['name'] .= '.' . $mime_to_ext[ $real_mime ];
}
return $file;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)