Wordpress 媒体上传阻止来自 uploads.php 的文件类型,但不是 media-upload.php

Wordpress Media Upload blocking file type from uploads.php, but not media-upload.php

我有一个网站 运行 Wordpress 5.2.4(目前最新)。我正在尝试将其设置为允许从 ACF 转发器中的文件上传字段将 .dwg 文件上传到媒体库中。我收到以下错误:

"Sorry, this file type is not supported for security reasons"

.dwg 文件不被 Wordpress 所接受,因此我们将其添加为 functions.php

中的 Mime 类型
function my_custom_mime_types( $mimes ) {
$mimes['.dwg'] = 'application/octet-stream';
return $mimes;
}

.dwg 文件仍然无法从 ACF 文件上传中上传,所以我们只是尝试将其直接上传到媒体库。我们发现如果我们点击 "Media" 就可以上传文件,然后点击侧边栏中的 "Add New"(下面链接图片中的绿色箭头)。

但是,如果我们单击 "Media Library" 标题右侧的 "Add New",它仍然会给出文件类型错误(下面链接图片中的红色箭头)。

Add Media Locations

我原以为这两个位置在 Wordpress 中使用了相同的设置,但我们得到了不同的结果。 "Media Library" 下面的 "Add New" 转到 media-upload.php(并且有效)。 "Media Library" 右边的 "Add New" 转到 uploads.php(并且不起作用)。

我也将 "don't filter anything" 行添加到 wp-config。php,但问题没有改变。

define( 'ALLOW_UNFILTERED_UPLOADS', true );

如有任何帮助,我们将不胜感激。我希望将 "Add New" 修复到右侧,也将修复 ACF 文件上传,所以一步一个脚印。

附加信息: 我们 运行 通过几个在线 mime 类型检查器(例如 checkfiletype.com)来检查文件。所有人都说文件类型是"application/octet-stream"。我也尝试了下面@ba-webimax建议的"image/vnd.dwg" mime类型,但这也没有解决问题。

已解决: @ba_webimax 说得对。我确实有正确的 mime 类型,但是那个时期把它搞砸了。删除下面行中 "dwg" 前面的句点解决了问题:

$mimes['dwg'] = 'application/octet-stream';

我认为您在匹配 MIME 类型时遇到了问题。试试这个...

function my_custom_mime_types( $mimes ) {
    $mimes['dwg'] = 'image/vnd.dwg'; //period not necessary; use proper mime-type
    return $mimes;
}
add_filter('upload_mimes', 'my_custom_mime_types');