linux - 使用 bash 脚本的 BusyBox 文件上传 [POST]

标签 linux bash busybox

我有一台设备运行限制性版本的 busybox,它有一个 hdmi 输出。我需要上传一张图片,以用作设备启动时的启动画面。制造商提供了一种 tftp 方法来执行此操作,但它并没有真正起作用,而且他们也不太愿意提供帮助。

我有什么

busybox details

我可以远程登录设备。没有文本编辑器,所以我正在创建这样的脚本:

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/

相关文章:

Linux shell : write IP to binary file

linux - 嵌入式linux和busybox

linux - 用于并行执行 make 的虚假目标

mysql - bash 检查 mysql 连接

macos - 使用 Mac Bash 脚本命令检查屏幕保护程序是否处于事件状态

linux - bash 函数返回状态

linux - 了解技术(Docker)容器架构

java - RHEL Java 应用程序 - 特定名称而不是通用 java 进程

linux - 如何解释 ArUco 的输出

linux - 在 Linux 交互使用中是否有任何 bash 符号来表示重定向操作数?