【问题标题】:BusyBox file upload [POST] with bash scriptBusyBox 文件上传 [POST] 与 bash 脚本
【发布时间】:2017-05-11 01:22:47
【问题描述】:

我有一台运行限制版本的busybox 的设备,该版本具有hdmi 输出。我需要上传一张图片,在设备启动时用作启动画面。制造商提供了一个 tftp 方法来做到这一点,但它并没有真正起作用,而且他们不太热心提供帮助。

我有什么

我可以通过 Telnet 访问该设备。没有文本编辑器,所以我正在创建这样的脚本:

echo "#!/bin/bash

(

同时读取 -d '' 行;做

printf '%s\n' \"\$line\"

完成

) > /www/images/test.gif

echo '状态:204 无内容'

回声;;

esac" > 文件.cgi

脚本是https://codereview.stackexchange.com/a/79626的修改版

设备已经有一个 http 服务器在运行,我可以成功地向脚本 POST 一个文件。文本文件(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 用户,但这种类型的交互是我的弱点,所以任何帮助将不胜感激。

【问题讨论】:

  • 你有 ftpget 用于文件传输
  • 虽然我可以这样做,但它需要使用 ftp 服务器,我希望避免额外的依赖。我正在使用我编写的外部控制程序来控制设备,除非没有其他选项,否则我宁愿不必强制应用程序充当 ftp 服务器。

标签: linux bash busybox


【解决方案1】:

你所要做的就是从标准输入读取,假设你可以写到/www/images,这是cgi脚本:

#! /bin/sh

cat - > /www/images/test.gif
echo "

OK"

【讨论】:

  • 哇。我把事情复杂化了。这效果很好。
猜你喜欢
  • 1970-01-01
  • 2018-11-22
  • 2015-06-07
  • 1970-01-01
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多