首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Directadmin使用CMD_SKINS上载徽标,但出现错误,无法获取mime类型

Directadmin使用CMD_SKINS上载徽标,但出现错误,无法获取mime类型
EN

Stack Overflow用户
提问于 2021-02-09 12:28:01
回答 1查看 36关注 0票数 0

我正在尝试使用CMD_API_SKINS上传自定义徽标

下面是我使用curl +bash的完整代码:

代码语言:javascript
复制
#/bin/bash

# DA needs this path

mkdir -p /home/tmp

# Assume my logo file is already here:

default_logo_file_home="/home/tmp/logo.png"

# The logo file is set to nobody:nogroup

chown nobody:nogroup "${default_logo_file_home}"

## Setup query data for curl:

username="admin"

password="12321aa"

da_port="2222"

host_server="server.domain.com"

ssl="https"

skin_name="evolution"

command="CMD_API_SKINS"

data="action=upload_logo&file=${default_logo_file_home}&json=yes&name=${skin_name}&which=1"

method="POST"

curl --silent --request "${method}" --user "${username}":"${password}" --data "${data}" "${ssl}://${host_server}:${da_port}/${command}"

在调试此API时,我得到一个错误,如下所示:

代码语言:javascript
复制
text='An Error Occurred'

        result='Cannot get mime-type for log<br>

DA似乎正在尝试解析并获取文件"logo.png“的扩展名,但它不能

完整的错误日志:

代码语言:javascript
复制
DirectAdmin 1.61.5

Accepting Connections on port 2222

Sockets::handshake - begin

Sockets::handshake - end

/CMD_API_SKINS

0: Accept: */*

1: Authorization: Basic bWF4aW93bng3OnhGVEVHe***jUSg/UTRTfVdHYW0+fWNURn5ATWN***HFbZGpMezlQZ***=

2: Content-Length: 75

3: Content-Type: application/x-www-form-urlencoded

4: Host: server.domain.com:2222

5: User-Agent: curl/7.75.0

Post string: action=upload_logo&file=/home/tmp/logo2.png&json=yes&name=evolution&which=2

auth.authenticated

User::deny_override:/CMD_API_SKINS:  call_level=2, depth1: aborting due to do depth

User::deny_override:/CMD_DOMAIN:  call_level=2, depth1: aborting due to do depth

User::deny_override:/CMD_DOMAIN:  call_level=1, depth2: aborting due to do depth

Plugin::addHooks: start

Plugin::addHooks: end

Command::doCommand(/CMD_API_SKINS)

cannot get mime type for log

Dynamic(api=1, error=1):

        text='An Error Occurred'

        result='Cannot get mime-type for log<br>

'

Command::doCommand(/CMD_API_SKINS) : finished

Command::run: finished /CMD_API_SKINS

我也尝试这样对查询进行编码,但仍然得到相同的错误

代码语言:javascript
复制
default_logo_file_home="%2Fhome%2Ftmp%2Flogo%2Epng"
data="action=upload%5Flogo&file=${default_logo_file_home}&json=yes&name=${skin_name}&which=%31"

这里发生了什么,有什么解释吗?可以使用此接口上传徽标吗?

EN

回答 1

Stack Overflow用户

发布于 2021-02-09 19:33:18

好了,我找到了这个窍门,但没有任何地方记录下来。上传的文件需要附加一个随机字符串。所以我改变了这个:

代码语言:javascript
复制
default_logo_file_home="/home/tmp/logo.png"

如下所示:

代码语言:javascript
复制
RANDOM_STR="EbYIES"

default_logo_file_home="/home/tmp/logo.png${RANDOM_STR}"

现在它可以完美地工作了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66112985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档