更改从request_uri获得的文件名

时间:2019-08-23 17:33:40

标签: bash file docker nginx lua

有人可以用下面的代码帮助我吗?

location / {
    content_by_lua_block {
       ngx.req.read_body()
       local filename = string.gsub(ngx.var.request_uri, "/", "")
       ngx.say(filename)
       local data = ngx.req.get_body_data()
       local file = io.open("/tmp/filename", "w")
       file:write(data)
       file:close()
       ngx.say("body data:")
       ngx.print(data)
    } 
}

基本上,我希望将从request_uri获得的文件名传递到local file = io.open(/tmp/filename)

如果我保留静态名称local file = io.open("/tmp/test.txt", "w"),则它可以正常工作。如何将变量文件名作为新文件名传递?

我尝试了几件事,但始终无法解决。我希望文件名是新文件名并保存在位置/tmp/filename

1 个答案:

答案 0 :(得分:1)

您可以使用串联运算符..

组成字符串
local filename = string.gsub(ngx.var.request_uri, "/", "")

filename = "/tmp/" .. filename

filename = string.format("/tmp/%s", filename)