cocos2dx から .png ファイルを php サーバーにアップロードする必要があります。(.txt はテスト目的には問題ありません)
ここで説明するようにエンジンを編集しました。
http://discuss.cocos2d-x.org/t/upload-file-with-httpclient-solved/18028/4 およびこちら: https://github.com/FenneX/FenneX/commit/134e9433c1dbc3ca6f772ce4c149bf911275a7e9
んで、どうする?ファイルをサーバーにアップロードするにはどうすればよいですか?
これは私の試みですが、私は http/network noob であるため、自分が何をしているのかわかりません...最初に簡単な作業例が必要です。
cocos2dx アップロード ボタン ソース:
// HTTP post
auto buttonPost = CustomButton::create("Post data",[this](Ref *pSender){
__String *dataToSend = __String::create("dataOne=45&dataTwo=100");
cocos2d::network::HttpRequest *request =
new cocos2d::network::HttpRequest();
request->setUrl("http://XXX.XXX.XXX.XXX/post.php");
request->setRequestType(cocos2d::network::HttpRequest::Type::POSTFILE);
request->setRequestData(dataToSend->getCString(), dataToSend->length());
request->setFilePath("res/test.txt");
request->setResponseCallback( [=]
(network::HttpClient* client,
network::HttpResponse* response)
{
std::vector<char> *buffer = response->getResponseData();
printf("Get data from server");
for (unsigned int i = 0; i < buffer->size(); i++)
{
printf("%c", (*buffer)[i]);
}
printf("\n\n\n");
printf("Response Code %li ", response->getResponseCode());
if (200 == response->getResponseCode())
{
printf("OK \n");
}
else
{
printf("failed \n");
}
});
cocos2d::network::HttpClient::getInstance()->send(request);
request->release();
});
PHP サーバー側のコード:
<?php
$uploaddir = "uploads/";
$uploadfile = $uploaddir . basename( $_FILES['file']['name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))
{
echo "The file has been uploaded successfully";
}
else
{
echo "There was an error uploading the file";
}
?>