Мне нужно загрузить файл .png из cocos2dx на php-сервер. Так что теперь https://github.com/FenneX/FenneX/commit/134e9433c1dbc3ca6f772ce4c149bf911275a7e9Как загрузить файл png в cocos2dx на php-сервер
: (.txt отлично подходит для целей тестирования)
я редактировал двигатель, как описано здесь:
http://discuss.cocos2d-x.org/t/upload-file-with-httpclient-solved/18028/4 и здесь? Как загрузить файл на сервер?
Это моя попытка, но я 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";
}
?>