有人可以用下面的代码帮助我吗?
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
答案 0 :(得分:1)
您可以使用串联运算符..
local filename = string.gsub(ngx.var.request_uri, "/", "")
filename = "/tmp/" .. filename
或
filename = string.format("/tmp/%s", filename)