WordPress提示“抱歉,您无权上传此文件类型。“
WordPress提示“抱歉,您无权上传此文件类型。“

WordPress提示“抱歉,您无权上传此文件类型。“

问题复现

《使用-create-ml-训练模型》一文中想要上传SleepCalculator.mlmodel文件时,发现WordPress后台提示“抱歉,您无权上传此文件类型。“

经搜寻发现WordPress默认不允许上传非常规的文件类型,因此本次上传的.mlmodel是二进制文件,因此需要采用其他方案进行上传。

解决方案

主要有以下三种方式,使用插件、修改functions.php文件、后台上传。

1、使用插件

WordPress可通过下载WP Extra File Types来安装并激活插件。

WP Extra File Types官方下载地址:https://downloads.wordpress.org/plugin/wp-extra-file-types.latest-stable.zip

WP Extra File Types(0.5.2版本)其他下载地址:https://fangjunyu.com/wp-content/uploads/2024/09/wp-extra-file-types.0.5.2.zip

下载WP Extra File Types插件后,在WordPress后台中,点击“插件”-“安装新插件”-“上传插件”

选择“wp-extra-file-types.0.5.2.zip”并点击“立即安装”按钮,完成插件安装。

安装完成后,点击“设置”-“Extra File Types”

打开Extra File Types界面后,滑动至页面尾部,因为这里只有常见的文件格式,本次需要添加的是mlmodel二进制文件,因此需要添加自定义的文件类型。

参考上图,Description填写文件描述,File Extension填写文件后缀”mlmodel”,Mime Type填写“application/octet-stream”。

MIME 类型(Multipurpose Internet Mail Extensions)是用来标识文件类型的互联网标准。它告诉浏览器或服务器文件的类型和格式,以便正确地处理文件。例如,图片的 MIME 类型可以是 image/png 或 image/jpeg,而网页的 MIME 类型通常是 text/html。

因为 .mlmodel 是二进制文件,MIME 类型 application/octet-stream 通常用于表示通用的二进制数据。

注意的是,文件后缀无论填写“.mlmodel”还是“mlmodel”,是否添加.后缀都是允许的,Mime Type也会默认使用“application/octet-stream”,如果你填的是错误的Mime Type,系统也会自动纠正过来。

修改完成后,点击底部的“保存变更”按钮,完成操作。

最后,我们就可以在“媒体”中自由的添加后缀为“mlmodel ‘的文件。

2、修改functions.php文件

在WordPress后台,找到“外观”-“主题文件编辑器”-“functions.php”

在functions.php文件的底部,添加下述代码并点击“更新文件”按钮。

function allow_mlmodel_uploads($mime_types) {
    $mime_types['mlmodel'] = 'application/octet-stream'; // 添加 MLModel 文件类型
    return $mime_types;
}
add_filter('upload_mimes', 'allow_mlmodel_uploads');

完成更新后,也可以添加在媒体中添加“mlmodel”文件,如需添加其他的二进制文件,只需要修改“mlmodel”后缀即可。

3、后台上传

因为我的WordPress部署在Docker容器上,因此,首先将文件从客户端传到服务器上,使用scp命令传递,此处略过传递代码。

首先通过docker ps命令,查询容器id,然后进入到容器中,找到word press容器的文件上传位置。最后,退出容器,从服务器端将“mlmodel”传递到文件上传位置。

docker ps   // 1、容器查询命令,找到容器id
docker exec -it 容器id bash     // 2、进入容器
cd wp-content/uploads/年份/月份 // 3、进入uploads文件夹的具体月份
pwd     // 4、获取当前的月份地址
exit    // 5、退出容器

这里的具体月份地址为:

/var/www/html/wp-content/uploads/2024/09

最后,我们找到要传递的“mlmodel”文件,使用docker cp命令将文件拷贝至word press容器,最后通过链接直接访问。

注意,你直接通过后台上传的“mlmodel”文件,不会在word press后台的媒体库中出现。

docker cp fangjunyu.mlmodel 18cc785cc795:/var/www/html/wp-content/uploads/2024/09       // 拷贝至docker容器
Successfully copied 2.56kB to 18cc785cc795:/var/www/html/wp-content/uploads/2024/09     // 拷贝成功

完成上述操作后,我们可以在网站中直接访问本次上传的文件地址(/wp-content/uploads/2024/09):

本次上传的mlmodel文件地址:https://fangjunyu.com/wp-content/uploads/2024/09/fangjunyu.mlmodel

参考资料

  1. WordPress遇到“抱歉,您无权上传此文件类型。“如何解决:https://www.vpsss.net/28526.html
  2. WP Extra File Types:https://wordpress.com/plugins/wp-extra-file-types

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开放者。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注