1
我與PhoneGap的插科打諢的一個項目的時候,但我遇到了一些麻煩上傳MP3播放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);
然而,當我再downloa d來自我的FTP客戶端的文件,Windows Media Player聲稱文件已損壞。
奇怪的是,VLC中播放的文件排序很好(進度條在10秒內卡住,並且不移動,但它完美播放音頻)。
任何想法,爲什麼會發生這種情況?提前致謝!
感謝您的幫助(這也仍然將文件移動到服務器上),但由於某種原因,該文件仍然被損壞。任何想法,爲什麼這可能會發生? – 2013-05-14 14:19:45
也許這是最大文件上傳限制嘗試此設置ini_set(「upload_max_filesize」,「3200000000」); – 2013-05-14 16:59:42
@LiamRichardson,你爲什麼接受了答案,設置upload_max_filesize爲你解決了這個問題? – Ionut 2016-09-14 08:52:17