我在将使用相机或相册拍摄的图像上传到服务器时遇到了一个小问题。我正在使用以下代码将图像上传到我的服务器:但是使用此代码,我的服务器只接收图像的表值,如下所示:表:0x11791daf0,我怎样才能让它上传图像而不是值?是否也可以使用此代码上传文本?
最后是我服务器上的 PHP 脚本。
先感谢您 :)
本地函数monitorMem(事件)
收集垃圾(“收集”)
print("\nMemUsage:" .. (collectgarbage("count")/1000) .." MB")
print("纹理使用" .. system.getInfo("textureMemoryUsed") / 1000000)
返回真
结尾
运行时:addEventListener(“enterFrame”,monitorMem)
本地图像
本地 mime = 需要“mime”
本地 bkgd = display.newRect( 0, 0, display.contentWidth, display.contentHeight )
bkgd:setFillColor(0,0,0)
本地 myRoundedRect = display.newRoundedRect(10, 50, 80, 50, 12)
myRoundedRect.strokeWidth = 3
myRoundedRect:setFillColor(140, 140, 140)
myRoundedRect:setStrokeColor(180, 180, 180)
本地 sessionComplete = 函数(事件)
图像 = 事件.目标
打印(“相机”,(图像和“返回图像”)或“会话被取消”)
print("事件名称:" .. event.name )
打印(“目标:”.. tostring(图像))
如果图像那么
-- 屏幕居中图像
image.x = display.contentWidth/2
图像.y = 59
本地 w = image.width
本地 h = image.height
图像.xScale = 0.3
图像.yScale = 0.3
print("w,h = "..w ..","..h)
结尾
结尾
本地侦听器 = 函数(事件)
如果 media.hasSource( media.Camera ) 那么
media.show(media.Camera, sessionComplete)
别的
native.showAlert(“电晕”,“找不到相机。”)
结尾
返回真
结尾
myRoundedRect:addEventListener("tap", listener)
本地 myRoundedRect1 = display.newRoundedRect(10, 400, 150, 50, 12)
myRoundedRect1.strokeWidth = 3
myRoundedRect1:setFillColor(140, 140, 140)
myRoundedRect1:setStrokeColor(180, 180, 180)
本地名称 = “图像名称”
函数uploadBinary(文件名,url,onComplete)
-- 本地路径 = system.pathForFile( 文件名 )
-- 本地文件句柄 = io.open(path, "rb" )
-- 如果是文件句柄 那么
如果图像那么
本地参数 = {
body = "image_file=" .. mime.b64(tostring( image )) .. "&image_filename="..Name
}
-- io.close( 文件句柄 )
本地函数networkListener(事件)
如果(onComplete)那么
完成(事件);
结尾
返回真;
结尾
network.request(url, "POST", networkListener, params)
结尾
结尾
本地函数网络监听器(事件)
如果 ( event.isError ) 那么
print("网络错误!")
别的
-- 打印(“响应:” .. event.response)
打印(“工作”)
结尾
结尾
本地函数上传()
uploadBinary ( image, "http://www.test1.bugs3.com/Corona.php", networkListener)
结尾
myRoundedRect1:addEventListener(“点击”,上传)
?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);
?