我现在已经用头撞了一下墙几个小时了,我似乎无法弄清楚是什么问题。
基本上我有一个S3 Bucket,我试图从Unity3D上传一个简单的文本(.txt)文件。要下载的C#脚本和PHP脚本取自here
所以我把PHP脚本放在桶本身,获取该php脚本的URL并从C#代码中调用它:
PHP脚本:
<?php
if(isset($_FILES['theFile']))
{
print("Success! ");
print("tmpName: " . $_FILES['theFile']['tmp_name'] . " ");
print("size: " . $_FILES['theFile']['size'] . " ");
print("mime: " . $_FILES['theFile']['type'] . " ");
print("name: " . $_FILES['theFile']['name'] . " ");
move_uploaded_file($_FILES['theFile']['tmp_name'], "../images/" . $_FILES['theFile']['name']);
} else
{
print("Failed!");
}
?>
C#:
WWWForm postForm = new WWWForm();
postForm.AddBinaryData("theFile", bytes, "TestFile", "text/plain");
WWW upload = new WWW(phpScriptURL, postForm);
yield return upload;
if (upload.error == null)
Debug.Log("upload done :" + upload.text);
else
Debug.Log("Error during upload: " + upload.error);
我收到错误&#34;上传时出错:405方法不允许&#34;
我尝试更改权限设置,区域设置等但无济于事。
我看了this answer并提到要改变终点,但我似乎无法做到这一点,无法编辑它。
如果我在不同的服务器上尝试相同的PHP / C#脚本,它可以正常运行......但不是在S3 Bucket中。
我已经尝试了另一个PHP / C#脚本并获得了相同的结果,S3存储桶上的错误相同,但在另一台服务器上获得了成功。
这是我尝试过的另一个PHP脚本:
<?php
$data = file_get_contents('php://input');
try {
$result = file_put_contents("save-bytes.txt", $data, FILE_APPEND);
} catch (Exception $e) {
echo $e->getMessage();
die();
}
if ($result !== false)
{
echo "Saved " . $result . " bytes";
} else {
echo "Data is not saved";
}
(此脚本使用的C#代码与之前发布的C#代码类似)
感谢您提前提供任何帮助