【问题标题】:Lua download POST requestLua 下载 POST 请求
【发布时间】:2012-05-05 12:41:42
【问题描述】:

我使用 Corona(基于 Lua) 并且喜欢创建一个可以存储普通浏览器发布的数据的服务器。

我正处于获得“POST”序列的位置,现在只需要存储传入的数据。

一些问题。 Post之后我不只是拿到文件,先来几个 headers 和一个带有边界的“content-type”= Info like "----WebKitFormBoundary1AA ..."

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

谢谢克里斯

这是我在循环中处理的代码

_in 循环后没有错误来自:本地请求,err = client:receive()

if request:sub(1,4) == "POST" then
    print ("GOT DATA UPLOAD")

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

    while state ~= 3 and not err do
            request,err = client:receive()

        -- data between bounderies
        if state == 2 then 
            if request == "\r" then print ("----OK"); end

            print (request)

        end

            if state == 0 and request:sub(1,13) == "Content-Type:" then
            a,b = string.find (request, "boundary=")
            if a > 0 then
                lastdummy = (string.sub(request,b+1))   
                state = 1
            end
        elseif state == 1 then
            if request == "--"..lastdummy then
                print ("startttt")
                state = 2
            end
        elseif state == 2 then
            if request == "--"..lastdummy then
                print ("ENNNNND")
                state = 3
            end     
        end

    end
    state = 0
    print ("done")
end

【问题讨论】:

    标签: lua http-post


    【解决方案1】:

    您的数据采用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      • 2019-01-18
      • 2018-04-11
      相关资源
      最近更新 更多