【发布时间】:2014-10-04 05:09:12
【问题描述】:
我有以下 php 代码来打开一个文件夹,将音频文件上传到其中:
<?php
if(!is_dir("upload")){
$res = mkdir("upload",0777);
}
// pull the raw binary data from the POST array
$data = substr($_POST['bufferFile'], strpos($_POST['bufferFile'], ",") + 1);
//echo($data);
// decode it
$decodedData = base64_decode($data);
echo($decodedData);
//echo ($decodedData);
$filename = urldecode($_POST['fname']);
echo($filename);
// write the data out to the file
$fp = fopen('upload/'.$filename, 'wb');
fwrite($fp, $decodedData);
fclose($fp);
?>
我遇到以下错误:
警告:fopen(upload/audio_recording_2014-08-11T11:21:02.213Z.wav): 无法打开流:C:\wamp\www\JSSoundRecorder\upload.php 中的参数无效 19
警告:fwrite() 期望参数 1 是资源,布尔值在 C:\wamp\www\JSSoundRecorder\upload.php 第 20 行
中给出警告:fclose() 期望参数 1 是资源,布尔值在 C:\wamp\www\JSSoundRecorder\upload.php 第 21 行中给出 有人可以帮我解决问题吗??
这是 javascript (ajax) 函数:
var reader = new FileReader();
var bufferFile;
var fileName = 'audio_recording_' + new Date().toISOString() + '.wav';
reader.onload = function (event) {
bufferFile = event.target.result;
bufferFile = dataURItoArrayBuffer(bufferFile);
postData(function() {
var fd = new FormData();
fd.append('fname', fileName);
fd.append('bufferFile', bufferFile);
$.ajax({
type: 'POST',
url: 'upload.php',
data: fd,
processData: false,
contentType: false,
success: function (data) {
console.log(data);
/* $.ajax({
type: 'POST',
url: 'readFile.php',
data: {
"fileName": fileName,
"bufferFile": bufferFile
},
success: function (data) {
//console.log(data);
}
});*/
}
});
});
console.log("nevermind");
};
reader.readAsDataURL(blob);
【问题讨论】: