Lua скачать POST запрос - PullRequest
       11

Lua скачать POST запрос

1 голос
/ 05 октября 2011

Я работаю с Corona (на базе Lua) и, как создать сервер, который может хранить данные, которые публикуются обычным браузером.

Я нахожусь в точке, где я получаю последовательность "POST", и теперь мне просто нужно сохранить входящие данные.

некоторые проблемы. После поста я не просто получаю файл, сначала идут несколько заголовки и «тип содержимого» с границей = информация типа «---- WebKitFormBoundary1AA ...»

А пока я пытаюсь проанализировать каждую отдельную строку, полученную для первого начала этой граничной последовательности и второго раза (конечная граница). Мой Код выглядит испорченным, и я уверен, что должен быть более простой вариант. Если у вас есть решение, пожалуйста, напишите.

Спасибо, Крис

Здесь мой код, который обрабатывается в цикле

_в цикле после отсутствия ошибки: локальный запрос, 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

1 Ответ

0 голосов
/ 05 мая 2012

Ваши данные в формате multipart / form-data . Вы должны расшифровать это. Я предлагаю вам повторно использовать некоторую библиотеку / код разбора HTTP с любого HTTP-сервера Lua. (Их много, попробуйте погуглить их.) Например: https://github.com/keplerproject/wsapi/blob/master/src/wsapi/request.lua

Также проверьте эту тему: http://lua -users.org / lists / lua-l / 2007-11 / msg00178.html

...