我有一台运行限定版busybox的设备,它有一个hdmi输出。我需要上传一张图片,以便在设备启动时用作启动画面。制造商提供了一种tftp方法来做到这一点,但它并没有真正起作用,而且他们对帮助不太热心。
我有telnet访问设备。没有文本编辑器所以我创建这样的脚本:
echo"#!/ bin / bash
(
读取-d''线做
printf'%s \ n' \" \ $线\"
完成
)> /www/images/test.gif
回声'状态:204无内容'echo ;;
ESAC" > file.cgi
该脚本是https://codereview.stackexchange.com/a/79626
的修改版本设备已经运行了http服务器,我可以成功地将文件发送到脚本。文本文件(txt,html)正确上传,我可以通过设备网络界面查看它们。
然而,对于图像不能说同样的。上传完成,我可以查看文件的内容(cat image
生成* PNG [二进制输出] *)。文件大小正确或接近预期的大小。在网络浏览器中显示文件会产生损坏的图像,Chrome会告诉我Resource interpreted as Document but transferred with MIME type image/png: "http://169.254.3.163/test.png".
我是普通的Linux用户,但这种类型的互动是我的弱点,所以任何帮助都会受到赞赏。
答案 0 :(得分:2)
您所要做的就是从stdin读取,并假设您可以写入/www/images
,这是cgi脚本:
#! /bin/sh
cat - > /www/images/test.gif
echo "
OK"