カメラで撮影した画像やフォト アルバムからサーバーに画像をアップロードする際に少し問題があります。次のコードを使用して画像をサーバーにアップロードしています: しかし、このコードを使用すると、サーバーは次のように画像のテーブル値のみを受信します: 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); ?