请问Creator怎样上传文件到php服务器

用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赞