我是php的新手,我正在尝试使用move_uploaded_file()函数。
我首先从一些javascript / jquery发送一个HTTP POST请求到一个php文件,如下所示,带有音频blob ....我的php文件托管在一个微软的Azure服务器上......
mediaRecorder.ondataavailable = function(e) {
var fileType = 'audio';
var fileName = 'test.ogg';
var formData = new FormData();
formData.append(fileType + '-filename', fileName);
formData.append(fileType + '-blob', e.data);
// e.data is the audio blob
var request = new XMLHttpRequest();
request.onreadystatechange = function () {
if (request.readyState == 4 && request.status == 200) {
console.log('wooo');
}
};
request.open('POST', myserver/Test.php');
request.send(formData);
}
我的PHP代码接收此帖子请求,似乎收到没有错误的文件
<?php
print_r($_FILES);
$temp = $_FILES['audio-blob']['tmp_name'];
$name = $_FILES['audio-blob']['name'];
if (isset($_FILES["audio-blob"])) {
$fileName = $_POST["audio-filename"];
$uploadDirectory = 'C:/Users/Liam/PhpRecordings/';
if (move_uploaded_file($temp, $uploadDirectory . $fileName)) {
echo("file moved!!!!");
}
else
{
echo(" problem moving uploaded file");
}
}
?>
<html>
<body>
Test
</body>
</html>
<?
?>
然而,当试图移动文件时它没有成功,我得到了回声
移动上传文件的问题
完整的帖子回复在这里
阵列( [audio-blob] =&gt;排列 ( [name] =&gt; BLOB [type] =&gt;音频/ OGG [tmp_name] =&gt; d:\本地的\ Temp \ phpA897.tmp [错误] =&gt; 0 [size] =&gt; 15755 )
)问题移动上传文件测试
有人知道为什么没有发生文件移动吗?
由于
答案 0 :(得分:0)
您的代码是否有足够的权限写入/Users/Liam/PhpRecordings/
?
尝试运行此代码并将输出添加到此答案的注释中:
echo file_put_contents('/Users/Liam/PhpRecordings/test.txt', 'testing_writing_to_file');
根据作者的进一步评论,$uploadDirectory
的写权限存在问题。
SO上有类似的问题 - Write permissions on mac