突然想到一个可能可以实现的方法:
1.Android或者ios的话,可以通过jsb读取本地二进制文件数据到一个buffer,然后通过javascript发送给php服务器。当然也可以通过socket发送给服务器。
2.web的话,估计可以通过网页上传文件的方式吧,毕竟js没法直接读取本地文件。
2016年9月3日22:22:45:
做了个测试,表示Android、ios和win应该可行。
上传的js脚本
var size = 0;
var data = jsb.fileUtils.getDataFromFile(filepath);
cc.log("file size:" + size);
//var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost/upload/upload_file.php');
xhr.setRequestHeader('Content-Type', 'application/octet-stream');
xhr.send(data);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var m = xhr.responseText;
var response = xhr.responseText.substring(0, 100) + "...";
cc.log (m);
}
}
}
服务器端php文件:
<?php
if(!empty($GLOBALS['HTTP_RAW_POST_DATA']) && strlen($GLOBALS['HTTP_RAW_POST_DATA'])>0)
{
$handleWrite = fopen("uploaded/testbin.jpg",'w+');
fwrite($handleWrite,$GLOBALS['HTTP_RAW_POST_DATA']);
fclose($handleWrite);
echo "Stored in: " . "./uploaded/testbin.dat";
}
else{
echo "上传失败";
}
?>