Woocommerce API 认为图像 SRC 是一种不同类型的文件,而不是 JPG

2023-12-02

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(使用前将#替换为@)

Woocommerce API 认为图像 SRC 是一种不同类型的文件,而不是 JPG 的相关文章

随机推荐

  • 在程序集问题中将大写字母转换为小写字母

    我正在写信将预设字符串从大写转换为小写 我目前正在将地址处的内容移至 8 位寄存器 然后以一种非常草率的方式测试 ASCII 值以查看它是否为大写 有没有更干净的方法来解决这个问题 现在我从 ASCII 值中减去 65 并与 25 进行比较
  • 使用 Volley 获取 JSONArray

    我试图从服务器获取 JSONArray 但收到各种错误 编辑 尝试添加所有这些导入 import android support v7 app AppCompatActivity import com android volley Requ
  • numpy向量化函数以接受不同长度的向量并返回张量结果

    我想向量化一个函数f a b 这样 当我输入 a 和 b 作为两个向量时 就会返回组合的张量 这是一个说明性示例 import numpy as np def tester a b mysumm 0 for ii in range a fo
  • jQuery AutoComplete 触发更改事件

    如何以编程方式触发 jQuery UI 的 AutoComplete 更改事件处理程序 Hookup CompanyList autocomplete source context companies change handleCompan
  • 在后台使用 onSaveInstanceState 和片段?

    我将片段保留在 FragmentManager 的后台堆栈中 每个片段状态都保存为成员变量的方向更改 例如 Override public void onSaveInstanceState Bundle outState super onS
  • 套接字连接突然关闭,代码为 141

    我想做的是连接到远程服务器 从本地计算机上的文件中读取内容并将其发送到服务器 然后捕获服务器响应并保存 我将 GET 命令放入一个文本文件中 并尝试获取相同的结果 这是代码的一部分 我使用套接字和 C 来完成此操作 if inet pton
  • jQuery 粘性页脚

    詹姆斯来了 我已经尝试了大约两个小时来获得粘性页脚 但我似乎一直搞乱 CSS 我正在寻找 jQuery 可以处理的脚本 我了解大多数脚本的工作原理 这很令人惊讶 因为我刚刚学习 但无论页脚的高度是多少 我都需要脚本工作 因为它没有在我的页面
  • 下单成功后如何获取可下载的产品链接

    成功订购后 我想直接建议买家在 success phtml 文件中购买的产品的可下载 URL 我写了这段代码来了解最新订单的产品值 Get the latest Order ID order Mage getModel sales orde
  • 如何使用 Hive 确定 HDFS 中的文件大小

    我正在使用的工作区设置为 Hive 1 1 0 和 CDH 5 5 4 我进行了一个查询 得到了 22 个分区的结果 保存在此分区目录中的文件始终是唯一的 大小从 20MB 到 700MB 不等 据我了解 这与查询过程中使用的reducer
  • ! LaTeX 错误:环境三部分表未定义

    使用 R Markdown 创建 pdf 时出现此错误 output file NCERA 210 Results knit md LaTeX Error Environment threeparttable undefined Error
  • 如何在asp.net中20分钟后停止会话超时?

    我正在使用 iis6 来部署我的应用程序 无论我如何更改iis配置中的超时或添加一个global asax文件来设置Session Timeout 甚至使用sessionstate 我仍然在20分钟后得到会话超时 这太疯狂了 有人请帮助我吗
  • 关于复制构造函数的问题

    我有这门课 class A private int player public A int initPlayer 0 A const A A operator const A A void foo const 我有包含这一行的函数 A pa
  • 调用本机方法时 JVM 必须做什么?

    当调用声明为的 Java 方法时 JVM 运行时必须执行哪些通常步骤native HotSpot 1 8 0 JVM 如何实现 JNI 函数调用 涉及哪些检查步骤 例如返回后未处理的异常 JVM 要执行哪些簿记 例如本地引用注册表 以及调用
  • 从列表中查找最旧的文件

    我有一个文件 其中包含不同目录中的文件列表 并且想要找到最旧的文件 感觉用一些 shell 脚本应该很容易 但我不知道如何解决这个问题 我确信在 Perl 和其他脚本语言中这确实很容易 但我真的很想知道我是否错过了一些明显的 bash 解决
  • WPF 自定义命名空间不起作用[重复]

    这个问题在这里已经有答案了 我遵循这个代码项目中的指南 因此 我将其添加到 AssemblyInfo cs 中 assembly XmlnsPrefix http my project com wpf g assembly XmlnsDef
  • 测试框架意外退出 - 空手道测试

    我将一个空手道项目导入到我的 Intellij 中 我已经把maven清理干净了 当我运行它时 我收到消息 测试框架意外退出并出现以下错误 Testing started at 10 24 C Users oluseyiojo Downlo
  • Vue 3 Vite-动态图片src

    我正在使用 Vue 3 和 Vite 在 Vite 构建生产后 我遇到了动态 img src 的问题 对于静态 img src 没有问题 img src src assets images my image png alt Image cl
  • 如何强制 MockitoJUnitRunner 在没有基本 http 身份验证的情况下失败?

    我写一个Spring Boot应用程序 我能够访问和测试Controller with MockMvc 问题是在测试期间没有强制执行安全性 我可以访问Controller没有用户 我做错了什么吗 这是有意的行为吗 ControllerTes
  • 将 XRAY 跟踪添加到非休息功能,例如 SQS、Cognito 触发器等

    使用无服务器框架 我有未附加到 API 网关端点的函数 例如 认知触发器 S3 Event DynamoDB 流 SQS活动 我还使用 XRAY 追踪 我将其设置为tracing true在我的 serverless yml 文件中 看来这
  • Woocommerce API 认为图像 SRC 是一种不同类型的文件,而不是 JPG

    Example images gt array 6 0 gt array 2 src gt string 112 https nz tradevine com BlobStorage GetFullPhoto photoID 3783754