使用HTTP multipart/formdata上传文件的lcurl

我使用lcurl将不同的文件(图像、文档、exe等)上传到服务器。文件上传应该使用HTTP multipart/formdata,其中必须包含文件名及其内容。使用[lcurl文档](https://lua-curl.github.io/lcurl/modules/lcurl.html#Class_httpform)我编写了以下代码(发送图像):

curl.easy()
 :setopt_url(serverUrl)
 :setopt_httppost(curl.form()
             :add_file('file', filePath, 'image/png', fName,
                   {'Content-length: ' .. fSize}
         ))
 :setopt_postfields('apikey=' .. apikey)
 :perform()
 :close()

服务器响应POST请求不包含文件字段

示例代码中有什么不正确?还缺少什么?

谢谢!

点赞
用户1875990
用户1875990

解决了。使用 :setopt_postfields 来添加 apikey 并重写 file 字段。

以下是成功的示意图:

curl.easy()
 :setopt_url(url)
 :setopt_httppost(curl.form()
             :add_content('apikey', apikey, 'text/plain')
             :add_file('file', filePath, 'application/octet-stream',
                   fName, {'Content-length: ' .. fSize}
         ))
 :perform()
 :close()
2016-05-02 09:05:18