在 Lua/Luci 服务器上使用 HTML/JavaScript 下载服务器根文件系统中的现有文件

Download existing file in server root file system using HTML/JavaScript on a Lua/Luci Server

本文关键字:服务器 文件系统 下载 文件 HTML Luci Lua JavaScript      更新时间:2023-09-26

让我先说我不知道我在做什么。我从我们雇来做工作的承包商那里继承了一个系统。我对Web开发不是很熟悉,也不知道神奇的巫毒教是如何配置或真正工作的。如果你要回复,请耐心等待,并假设我不知道杰克你在告诉我什么 - 请不要留下任何"让读者弄清楚"的东西。我被贸易嵌入,宁愿敲打比特,也不愿为网站开发后端代码。

服务器运行在嵌入式Linux平台上(基础是OpenWRT)。核心是Lua/Luci,但是有大量的HTM文件同时使用HTML和JavaScript。

我想做的似乎非常非常简单,但我似乎无法让它工作:/etc 中有一个文件,我希望能够从服务器下载到本地机器。需要与IE,Firefox和Chrome一起使用。

我会喜欢这样的东西:

<a href="/etc/file">download</a>

但它不适用于 lua/luci 知道的子目录区域之外的文件(即我不能"../../../etc/file")

我已经尝试了几种不同的东西,但最大的问题是我似乎无法让 lua/luci 的东西识别包含一些 htm 文件的同一目录中的任何新内容,也无法识别服务器根目录中的任何内容(例如/etc/file)。通常我所做的会回到主页或显示:

No page is registered at '/admin/talon/file'.
If this url belongs to an extension, make sure it is properly installed.
If the extension was recently installed, try removing the /tmp/luci-indexcache file. 

(是的,我在重新加载页面之前清除缓存)。

我可以创建一个指向/etc/的符号链接,但这也没有取得成果 - 主要是因为我真的不知道 lua 服务正在做什么样的魔法来查找现有文件。

我更喜欢解决方案只在HTML和JavaScript中。

是的,我已经四处寻找了一个基本解决方案,但是这些问题想要做的不仅仅是下载,或者没有足够的信息让我弄清楚应该做什么。

请发布完整的解决方案,而不仅仅是片段。

我能够根据同一源中的其他一些代码弄清楚。它适用于一页,但不适用于另一页。不知道为什么 - 只是更多的巫术。必须在 LUA 脚本语言中工作才能获得我想要的文件;HTML是直截了当的。如果我知道让它工作的神奇之处是什么,我会发布实际的解决方案,但我认为该解决方案对于原始开发人员将东西放在一起的方式有些独特,因此对其他人没有用。