1
0
mirror of https://github.com/lxsang/antd-lua-plugin synced 2024-12-29 10:48:21 +01:00
antd-lua-plugin/example-app/os/fs/get.lua
2018-09-19 15:08:49 +02:00

41 lines
1.2 KiB
Lua

local get
get = function(uri)
vfsfile = utils.decodeURI(uri)
auth_or_die("User unauthorized. Please login")
local r,m = require("fs.vfs").checkperm(vfsfile,'read')
if r then
local mime = std.mimeOf(m)
if mime == "audio/mpeg" then
local finfo = unix.file_stat(m)
local len = tostring(math.floor(finfo.size))
local len1 = tostring(math.floor(finfo.size-1))
std.status(200, "OK")
std.custom_header("Pragma","public")
std.custom_header("Expires","0")
std.custom_header("Content-Type",mime)
std.custom_header("Content-Length",len)
std.custom_header("Content-Disposition","inline; filename="..std.basename(m))
std.custom_header("Content-Range:","bytes 0-"..len1.."/"..len)
std.custom_header("Accept-Ranges","bytes")
std.custom_header("X-Pad", "avoid browser bug")
std.custom_header("Content-Transfer-Encoding", "binary")
std.custom_header("Cache-Control","no-cache, no-store")
std.custom_header("Connection", "Keep-Alive")
std.custom_header("Etag","a404b-c3f-47c3a14937c80")
std.header_flush()
else
std.header(mime)
end
if std.is_bin(m) then
std.fb(m)
else
std.f(m)
end
else
fail(m)
end
end
return get;