Javascript PhoneGap文件传输在上载到服务器时会损坏.mp3

Javascript PhoneGap文件传输在上载到服务器时会损坏.mp3,javascript,php,cordova,Javascript,Php,Cordova,为了一个项目,我在玩弄PhoneGap,但我在上传.mp3时遇到了一些问题 我可以使用设备内置的麦克风录制mp3,然后使用以下JavaScript上传文件: var audio_name = 'fyp_app_recording_' + Math.round(new Date().getTime()/1000) + '.mp3'; // Record audio // function recordAudio() { var src = audio_name; var me

为了一个项目,我在玩弄PhoneGap,但我在上传.mp3时遇到了一些问题

我可以使用设备内置的麦克风录制mp3,然后使用以下JavaScript上传文件:

var audio_name = 'fyp_app_recording_' + Math.round(new Date().getTime()/1000) + '.mp3';

// Record audio
// 
function recordAudio() {

    var src = audio_name;
    var mediaRec = new Media(src, onSuccess(src), onError);

    // Record audio
    mediaRec.startRecord();

    // Stop recording after 10 sec
    var recTime = 0;
    var recInterval = setInterval(function() {
        recTime = recTime + 1;
        setAudioPosition("Recording Audio - " + recTime + " sec");
        if (recTime >= 10) {
            clearInterval(recInterval);
            mediaRec.stopRecord();
            setAudioPosition("Recording Saved As " + src);
        }
    }, 1000);
}

// onSuccess Callback
//
function onSuccess(src) {
    console.log("recordAudio():Audio Success" + src);
}

// onError Callback 
//
function onError(error) {
    alert('code: '    + error.code    + '\n' + 
          'message: ' + error.message + '\n');
}

// Set audio position
// 
function setAudioPosition(position) {
    document.getElementById('audio_position').innerHTML = position;
}

//File upload

    function uploadAudio() {    

      var options = new FileUploadOptions();
        options.fileKey="file";
        options.fileName="test.mp3";
        options.mimeType="audio/mpeg";

        var ft = new FileTransfer();
        ft.upload("mnt/sdcard/" + audio_name, "http://www.richardsonweb.co.uk/fyp/test1/upload.php", win, fail, options);
    }

    function win() {
        alert("Yay! It worked!");
    }

    function 7(error) {
        alert("An error has occurred: Code = " = error.code);
    }
upload.php文件包含以下代码:

    print_r($_FILES);



$new_file_name = time() . ".mp3";
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$new_file_name);
但是,当我从FTP客户端下载该文件时,Windows Media Player声称该文件已损坏

奇怪的是,这种文件在VLC中播放得很好(进度条在10秒时卡住,不动,但它能完美地播放音频)


你知道为什么会这样吗?提前谢谢

尝试使用此php代码

<?php
   $destination_path = getcwd().DIRECTORY_SEPARATOR;

   $result = 0;

   $target_path = $destination_path . time() . ".mp3";

   ini_set("upload_max_filesize", "3200000000");

   if(@move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) {
      $result = 1;
   }

   sleep(1);
?>


感谢您的帮助(这仍然会将文件移动到服务器上),但由于某些原因,文件仍然损坏。你知道为什么会发生这种情况吗?也许是最大文件上传限制,试试这个设置ini_set(“upload_max_filesize”,“32000000”)@LiamRichardson,你为什么接受这个答案,设置上传文件大小为你解决了问题?@ClintonWard,我和LiamRichardson有同样的问题,但我不明白你的答案是如何帮助他解决问题的。你能解释一下吗?谢谢