カメラで撮影した画像やフォト アルバムからサーバーに画像をアップロードする際に少し問題があります。次のコードを使用して画像をサーバーにアップロードしています: しかし、このコードを使用すると、サーバーは次のように画像のテーブル値のみを受信します: table: 0x11791daf0、値の代わりに画像をアップロードするにはどうすればよいですか? また、このコードでテキストをアップロードすることもできますか?
そして最終的に私のサーバー上のPHPスクリプト。
前もって感謝します :)
ローカル関数 monitorMem(イベント)
collectgarbage("収集")
print( "\nMemUsage: " .. (collectgarbage("count")/1000) .. " MB")
print("テクスチャの使用状況" .. system.getInfo( "textureMemoryUsed" ) / 1000000)
真を返す
終わり
ランタイム:addEventListener("enterFrame", monitorMem)
ローカル画像
local mime = "mime" が必要
local 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( "カメラ", ( 画像と "画像が返されました" ) または "セッションがキャンセルされました" )
print( "イベント名: " .. event.name )
print( "target: " .. tostring( image ) )
もし画像なら
-- 画面の中央に画像
image.x = display.contentWidth/2
画像.y = 59
ローカル w = image.width
ローカル h = image.height
image.xScale = 0.3
image.yScale = 0.3
print( "w,h = ".. w .."," .. h )
終わり
終わり
ローカルリスナー = 関数 ( イベント )
もし media.hasSource( media.Camera ) なら
media.show( media.Camera, sessionComplete )
そうしないと
native.showAlert("コロナ", "カメラが見つかりません。")
終わり
真を返す
終わり
myRoundedRect:addEventListener( "タップ", リスナー)
ローカル 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( ファイル名 )
-- local fileHandle = io.open( パス, "rb" )
-- fileHandle の場合
もし画像なら
ローカル パラメータ = {
body = "image_file=" .. mime.b64(tostring( image )) .. "&image_filename="..名前
}
-- io.close(ファイルハンドル)
ローカル関数 networkListener ( イベント )
if (onComplete) なら
onComplete(イベント);
終わり
true を返します。
終わり
network.request( URL、「POST」、networkListener、params)
終わり
終わり
ローカル関数 networkListener( イベント )
if ( event.isError ) then
print( "ネットワークエラー!")
そうしないと
-- 印刷 ( "RESPONSE: " .. event.response)
印刷 (「作業中」)
終わり
終わり
ローカル関数 アップロード ()
uploadBinary ( 画像, "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);
?