過去のアイデアについて

過去に作ったアプリや参加したハッカソンでアウトプットしたものが、ブラッシュアップされたモノやサービスがリリースされるのを最近見かけるようになりました。

以前はアート系の作品で賞をいただいてこともあっても製品のアウトプットには自信がなかったのですが、今年はプロダクトやサービスをガッツリ作るのもアリなのかと。

ということで、4月からは新しいプロダクトを制作を始めようと模索中です。

途中経過など何か進捗ありましたら、こちらでご報告予定です。

 

 

FlashAirでファイルをPOSTする

FlashAirハッカソンに参加してきました。

賞は取れませんでしたが、成果物(自分が担当した部分)をアップしておきたいと思います。

できることは、FlashAirからファイルなどをサーバーにPOSTで送信します。

 

【FlashAirの/sample.txtをサーバーにPOSTで送るLUAスクリプト】


boundary = "--61141483716826"
contenttype = "multipart/form-data; boundary=" .. boundary
filepath = "/sample.txt"
mes = "--"..boundary.."\r\n"
 .."Content-Disposition: form-data; name=\"upfile\"; filename=\""..filepath .."\"\r\n"
 .."Content-Type: text/plain\r\n"
 .."\r\n"
 .."\r\n"
 .."--" .. boundary .. "--\r\n"
blen = lfs.attributes(filepath,"size") + string.len(mes) - 17
b,c,h = fa.request{url = "http://takahirohirata.com/upload.php",
 method = "POST",
 headers = {["Content-Length"] = tostring(blen),
 ["Content-Type"] = contenttype},
 file = filepath,
 body = mes
 }

(使用する場合はurl(”http://takahirohirata.com/upload.php”)を変更してください)

 

【POSTで送られたデータをfilesフォルダに保存するCGI(php)】


<?php
if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
  if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) {
    chmod("files/" . $_FILES["upfile"]["name"], 0644);
    echo $_FILES["upfile"]["name"] . "をアップロードしました。";
  } else {
    echo "ファイルをアップロードできません。";
  }
} else {
  echo "ファイルがありません。";
}
?>

(使用する場合はfilesフォルダを作成してください)

 

デバッグの方法が何かと面倒なのですが、自分のやり方としては、

FlashAirのCONFIGファイルの設定をインターネット同時接続モード


APPMODE=6

にし、パソコンのwifiをFlashAirに接続し、パソコンブラウザでFlashAirのLUAスクリプトを直接実行する(ブラウザのURLに記述して直接呼び出す)方法を取ってました。

ご参考までに!