您的位置:首页 > 其它

(个人)AR电子书系统创新实训第三周(2)

2017-05-27 22:54 239 查看

服务器上传测试

在解决了文件导入和压缩的问题后,我准备验证一下www上传文件的功能。到上传文件,我们首先需要搭建一个服务器,由于本人完全没有搭建服务器的经验,对此毫无头绪,也不敢去购买网上的云服务器,害怕挑错类型而前功尽弃。于是,我在百度上找到了wampserver这个工具,可以用它来搭建一个本地服务器。具体的安装过程我就不在这里提了,有兴趣的话可以在百度上找

搭建好服务器后,在浏览器里输入localhost便会出现wampserver自带的index.html说明页,说明服务器运行正常。

有了服务器并没有完,我们还需要在服务器上部署相应的代码,负责接收用户发送的文件,保存起来,并返回保存地址。由于我并不熟悉php语言,因此从网上找了一段保存post请求数据的代码,略作修改。代码如下:

<?php

$myFile = $_FILES["post"]["tmp_name"];
$content = '';
$fh = fopen($myFile, 'r') or die("can't open file");
while (!feof($fh)) {
$content .= fgets($fh);//filesize($myFile)) or die('can\'t read');
}
fclose($fh);

//文件存储路径
$file_path="upload/";
if(is_dir($file_path)!=TRUE) mkdir($file_path,0664) ;
$myFile = $file_path.$_REQUEST['Name'].".zip";
$fh = fopen($myFile, 'w') or die("can't open file");
//$stringData = $_FILES["fileUpload"];
$stringData = $content;//"START:\n" . join(',\n',headerCustom()) . ' \END';
fwrite($fh, $stringData);
fclose($fh);
echo $myFile;
//echo $file_path +
?>


当然,代码的内容我还是看懂了的,具体的工作就是在接收到数据后使用文件流将数据保存在根目录的upload文件夹下,保存格式为.zip。然后将文件目录通过echo的方式返给请求方。

在请求方,也就是Unity中,我同样使用了WWW来发送请求,由于发送的是Post请求,形式有些不同:

byte[] bytes = readingZipWWW.bytes;
WWWForm form = new WWWForm();
form.AddField("Name", name);
form.AddBinaryData("post", bytes);
uploadWWW = new WWW(url, form);

8db0
Uploading = true;
StartCoroutine(PostData(uploadWWW));


在代码中,首先需要将数据以字节的形式传递给一个WWWForm对象,同时还可以传入一些其它的参数比如名字之类的,然后将此对象和服务器的url地址一起使用WWW发送,便可以实现Post上传数据。在发送完成后,可以通过www.text的方式获得服务器响应的数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: