我有以下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 < / I>
警告:fwrite()要求参数1为资源,布局在C:\ wamp \ www \ JSSoundRecorder \ upload.php中给出 20
警告:fclose()期望参数1为资源,布局在 21 上的C:\ wamp \ www \ JSSoundRecorder \ upload.php中给出 可以请有人帮助我出错了吗?
这是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);
答案 0 :(得分:0)
我相信这一行$fp = fopen('upload/'.$filename, 'wb');
正在产生错误。模式wb
不正确。
根据此link,fopen
成功时返回文件指针资源,错误时返回 FALSE 。
你的第一个警告
警告:fopen(upload / audio_recording_2014-08-11T11:21:02.213Z.wav):无法打开流:第19行的C:\ wamp \ www \ JSSoundRecorder \ upload.php中的参数无效
来自错误的wb
模式。
第二次和第三次警告
警告:fwrite()要求参数1为资源,在第20行的C:\ wamp \ www \ JSSoundRecorder \ upload.php中给出布尔值
警告:fclose()要求参数1为资源,布尔值在第21行的C:\ wamp \ www \ JSSoundRecorder \ upload.php中给出
是您假设fp
是资源的结果。由于第一次警告,fp
实际上是boolean
。它实际上具有FALSE
的值boolean
。
也许您打算使用w+
而不是wb
。我希望它有所帮助。