2
我有一個小小的問題,涉及將圖像上傳到使用相機或相冊拍攝的服務器。我正在使用以下代碼將圖像上傳到我的服務器:但是通過此代碼,我的服務器僅調用圖像的表值,如下所示:table:0x11791daf0
,如何獲取圖像而不是值?並且還可以使用此代碼上傳文本?從相機/相冊將圖像上傳到服務器 - Corona sdk
和我的服務器上的PHP腳本到底。
預先感謝您:)
local function monitorMem(event) collectgarbage("collect") print("\nMemUsage: " .. (collectgarbage("count")/1000) .. " MB") print("Texture Usage " .. system.getInfo("textureMemoryUsed")/1000000) return true end Runtime:addEventListener("enterFrame", monitorMem) local image local mime = require "mime" local bkgd = display.newRect(0, 0, display.contentWidth, display.contentHeight) bkgd:setFillColor(0, 0, 0) local myRoundedRect = display.newRoundedRect(10, 50, 80, 50, 12) myRoundedRect.strokeWidth = 3 myRoundedRect:setFillColor(140, 140, 140) myRoundedRect:setStrokeColor(180, 180, 180) local sessionComplete = function(event) image = event.target print("Camera ", (image and "returned an image") or "session was cancelled") print("event name: " .. event.name) print("target: " .. tostring(image)) if image then -- center image on screen image.x = display.contentWidth/2 image.y = 59 local w = image.width local h = image.height image.xScale = 0.3 image.yScale = 0.3 print("w,h = ".. w .."," .. h) end end local listener = function(event) if media.hasSource(media.Camera) then media.show(media.Camera, sessionComplete) else native.showAlert("Corona", "Camera not found.") end return true end myRoundedRect:addEventListener("tap", listener) local myRoundedRect1 = display.newRoundedRect(10, 400, 150, 50, 12) myRoundedRect1.strokeWidth = 3 myRoundedRect1:setFillColor(140, 140, 140) myRoundedRect1:setStrokeColor(180, 180, 180) local Name = "Imagename" function uploadBinary (filename, url, onComplete) -- local path = system.pathForFile(filename) -- local fileHandle = io.open(path, "rb") -- if fileHandle then if image then local params = { body = "image_file=" .. mime.b64(tostring(image)) .. "&image_filename="..Name } -- io.close(fileHandle) local function networkListener (event) if (onComplete) then onComplete(event); end return true; end network.request(url, "POST", networkListener, params) end end local function networkListener(event) if (event.isError) then print("Network error!") else -- print ("RESPONSE: " .. event.response) print ("Working") end end local function Upload() uploadBinary (image, "http://www.test1.bugs3.com/Corona.php", networkListener) end myRoundedRect1:addEventListener("tap", Upload) ?php $image_file = fopen($_POST['image_filename'], 'wb'); $encodedData = str_replace(' ','+',$_POST['image_file']); $decocedData = base64_decode($encodedData); fwrite($image_file, $decocedData); fclose($image_file); ?