我有一台设备运行限制性版本的 busybox,它有一个 hdmi 输出。我需要上传一张图片,以用作设备启动时的启动画面。制造商提供了一种 tftp 方法来执行此操作,但它并没有真正起作用,而且他们也不太愿意提供帮助。
我有什么
我可以远程登录设备。没有文本编辑器,所以我正在创建这样的脚本:
echo "#!/bin/bash
(
while read -d '' line ; do
printf '%s\n' \"\$line\"
done
) > /www/images/test.gif
echo 'Status: 204 No Content'
echo ;;
esac" > file.cgi
该脚本是 https://codereview.stackexchange.com/a/79626 的修改版本
该设备已经有一个正在运行的 http 服务器,我能够成功地将文件发布到脚本。文本文件(txt、html)正确上传,我可以通过设备网络界面查看它们。
但是,图像不能这样说。上传完成,我可以查看文件的内容(cat image
生成 *PNG [二进制输出] *)。文件大小正确或接近预期大小。在 web 浏览器中打开文件会产生一个损坏的图像,Chrome 告诉我 Resource interpreted as Document but transferred with MIME type image/png: "http://169.254.3.163/test.png".
我是一个普通的 linux 用户,但这种类型的交互是我的弱点,所以任何帮助将不胜感激。
最佳答案
你所要做的就是从标准输入读取,假设你可以写入/www/images
,这是cgi脚本:
#! /bin/sh
cat - > /www/images/test.gif
echo "
OK"
关于linux - 使用 bash 脚本的 BusyBox 文件上传 [POST],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43904993/