Lua下载POST请求

我正在使用 Corona(基于 Lua)创建一个服务器,可以存储通过普通浏览器发布的数据。

现在我已经获取到“POST”序列,只需要存储传入的数据。

遇到一些问题,提交后我并不直接获取文件,而是先来了几个头部和一个“content-type”和一个boundary = info,例如“----WebKitFormBoundary1AA…”。

现在我尝试分析我获取的每一行,以获取该边界序列的第一开始和第二次(结束边界)的位置。我的代码看起来很乱,我相信应该有一种更简单的方法。如果您有解决方案,请发布。

谢谢 Chris

以下是我的代码,在循环中处理:

_如果没有来自:local request,err = client:receive()的错误

if request: sub14)==“POST”then
    print(“收到数据上传”)

    request,err = client:receive()
    local state = 0
    local lastdummy =“

    while state!= 3且无错误 do
            request,err = client:receive()

        --两个限制之间的数据
        如果状态== 2则
            如果请求==“\ r”则print(“ ----OK”);结局

            print(请求)

        结束

            如果状态== 0且请求:sub113)==“Content-Type:”then
            a,b = string.find(request,“boundary =”)
            如果a> 0 then
                lastdummy =(string.sub(request,b + 1))
                 状态= 1
            结束
        elseif state == 1 then
            如果请求==“--”.. lastdummy then
                print(“startttt”)
                状态= 2
            结束
        elseif state == 2 then
            如果请求==“--”.. lastdummy then
                print(“ENNNNND”)
                状态= 3
            结束
        结束

    结束
    状态= 0
    print(“完成”)
结束

原文链接 https://stackoverflow.com/questions/7661673

点赞
stackoverflow用户6236
stackoverflow用户6236

你的数据采用 multipart/form-data 格式。你需要对其解码。我建议你重用从任何 Lua HTTP 服务器提取的一些 HTTP 解析库/代码。(有很多,试试谷歌搜索。)例如: https://github.com/keplerproject/wsapi/blob/master/src/wsapi/request.lua

另外,请查看此主题:http://lua-users.org/lists/lua-l/2007-11/msg00178.html

2012-05-05 04:41:42