#!/usr/bin/lua nixio = require "nixio" fs = require "nixio.fs" util = require "luci.util" ltn12 = require "ltn12" luafm = require "luafm" args = {} for dummy,param in pairs(util.split(nixio.getenv('QUERY_STRING'),'&')) do val = util.split(param,'=') args[val[1]] = util.urldecode(val[2],true) end path = luafm.make_path(args["path"]) if path then file = io.open(path,"rb") else file = nil end if file then print("Content-Type: application/octet-stream") print('Content-Disposition: attachment; filename="'..fs.basename(args["path"])..'"') print("\r") ltn12.pump.all( ltn12.source.file(file), ltn12.sink.file(io.stdout) ) else print("Status: 404 Not Found") print("Content-Type: text/plain") print("\r") print("File not found") end