使用Lua将文件上传到服务器。

我一直在尝试使用 LUA 将文件上传到 Web 服务器。

我的问题是,我想使用 LUA 将文件上传到 Web 服务器,就像从浏览器上传文件一样。

我成功地使用服务器上传了文件,我可以使用 file_get_contents('php://input') 来进行上传,然后对其进行 mime_decode,保存该文件。

但是,我希望能够像使用 LUA 的服务器端一样使用 $_FILES['file_name'] 进行上传。

那么有人有想法如何在 LUA 中实现此功能吗?

敬礼。

点赞
用户1632532
用户1632532

你可以使用 HTTP sockets 库发送 HTTP 请求,使用 ltn12 库进行过滤(文件输入)。这两个库都应该在 Lua 中提供。

http = require("socket.http")
ltn12 = require("ltn12")

http.request{
    url = "url://to.server/upload/script.php",
    method = "POST",
    headers = {
        ["Content-Type"] =  "multipart/form-data",
        ["Content-Length"] = sizeOfFile
    },
    source = ltn12.source.file(io.open(pathToLocalFile)),
    sink = ltn12.sink.table(response_body)
}
print(response_body[1]) --响应请求
2012-09-04 21:31:39