我用錄音機從這個地方的JavaScript/PHP文件上傳
http://webaudiodemos.appspot.com/AudioRecorder/index.html,
但我不是保存該文件在本地,我想將其上傳到服務器。我最好的拍攝是試圖修改Recorder.setupDownload功能recording.js腳本,它創建的BLOB傳遞給一個簡單的上傳PHP腳本,我發現here:
<?php
if(isset($_FILES['image'])){
$errors= array();
$file_name = $_FILES['recording']['name'];
$file_size =$_FILES['recording']['size'];
$file_tmp =$_FILES['recording']['tmp_name'];
$file_type=$_FILES['recording']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
$extensions = array("wav");
if(in_array($file_ext,$extensions)=== false){
$errors[]="extension not allowed, please choose wav file."
}
if($file_size > 2097152){
$errors[]='File size under 20MB';
}
if(empty($errors)==true){
move_uploaded_file($file_tmp,"images/".$file_name);
echo "Success";
}else{
print_r($errors);
}
}
?>
而且我特林它使用一個jQuery調用,
$.ajax({
type: "POST",
url: "../scripts/Single-File-Upload-With-PHP.php",
data: blob
});
但我明明做錯事。原始的PHP腳本有一個用於輸入的表格 ,我註釋掉了直接調用php代碼。
所以我的問題是;
- 如何修改Recorder.setupDownload上傳文件到 指定的文件夾?
- 如何在出現問題時回報?
或者,有沒有更優雅的解決方案?
編輯:關於什麼是在團塊
這是怎樣的BLOB在recorder.js被定義:
worker.onmessage = function(e){
var blob = e.data;
currCallback(blob);
}
至於我的理解它與(在recorderWorker.js列出的方法創建鏈接註釋),它應該只包含一個wav文件。
要確定是否somethign了錯誤,你應該用你的Ajax調用成功和錯誤的方法。即成功:功能(數據){/ *做一些與數據* /} - 我個人更喜歡從我的PHP腳本內輸出json。即{「錯誤」:{「文件」:「文件太大」}} - 那麼你只是檢查是否存在錯誤,然後輸出errors.file – skrilled
它似乎你並沒有實際發送文件,因爲你沒有提供一個包含文件名,元素或實際文件的參數 – aelgoa
blob中的內容是什麼? –