簡體   English   中英

使用php和ajax將音頻上傳到文件中

[英]upload audio into a file using php and ajax

我使用以下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中的參數無效

警告:fwrite()期望參數1為資源,在第行的C:\\ wamp \\ www \\ JSSoundRecorder \\ upload.php中給出布爾值

can please someone help me what is going wrong?? 警告:fclose()期望參數1為資源,在第行的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);

我相信這行$fp = fopen('upload/'.$filename, 'wb'); 產生錯誤。 模式wb不正確。

根據此鏈接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 希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM