如何使用Corona SDK Lua上传图片

我正在使用PHP和Corona SDK(Lua)创建一个社交类应用(类似Instagram)。用户有一个选项可以从他们的手机上上传一张照片,然后将其用作其账户的个人资料图片。

我不知道如何将照片上传到应用所在文件夹内的文件夹中,然后在用户的资料页面上显示该图片。我已经查看了一些教程,但他们并没有帮助到我。有人能帮帮我吗?

点赞
用户4842119
用户4842119

你的问题描述太泛泛了,请具体说明你的问题。我想你是在问如何从Corona SDK上传图像,是吗?

这里是从Corona SDK上传图像到服务器的方法:

1 - 从相册选择图像。

-- 选择完成监听器
local function onComplete( event )
    local photo = event.target

    if photo then
        print( "photo w,h = " .. photo.width .. "," .. photo.height )
    end
end

local button = display.newRect( 120, 240, 80, 70 )

local function pickPhoto( event )

    media.selectPhoto(
    {
        mediaSource = media.SavedPhotosAlbum,
        listener = onComplete,
        origin = button.contentBounds,
        permittedArrowDirections = { "right" },
        destination = { baseDir=system.TemporaryDirectory, filename="image.jpg" }
    })
end

button:addEventListener( "tap", pickPhoto )

Corona SDK文档关于 media.selectPhoto

2 - 上传图像到服务器。

你需要将MultipartFormData库添加到你的项目中。这里是 链接(英文)

然后

local MultipartFormData = require("class_MultipartFormData")
local multipart = MultipartFormData.new()
local path=system.pathForFile( "image.jpg", system.TemporaryDirectory )
multipart:addFile("Image", path, "image/jpg", "image.jpg")

local params = {}
params.body = multipart:getBody()
params.headers = multipart:getHeaders() -- Headers not valid until getBody() is called.

network.request("https://your.server.url/services/imageupload?parameter=1", "POST", listener, params)

您也可以在?后面传递参数。检查URL。

2017-08-10 22:47:53