用XMLHttpRequest可以吗?但是貌似js没法读取本地绝对路径的文件。
有没有通过网页上传的方式,请求一个php页面就可以上传呢?
如果有,android或者ios也可以使用同样的方式吗?
1赞
同问 目前有个需求是 有个上传文件的功能供策划使用 却发现未找到相关接口可浏览本地文件并上传
突然想到一个可能可以实现的方法:
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 "上传失败"; } ?>
2赞