2
嘗試了很多像axios,fetch,fetch-blob沒有成功的第三方館藏。 這段代碼包含了我的php後端。 使用RN v 0.39如何從react-native上傳音頻剪輯到php後端?
上傳已經在手機存儲器中存在服務器音頻剪輯
文件路徑:AudioUtils.MusicDirectoryPath +「/test.aac」 [訪問的路徑,可以播放短片]
使用參考:/github.com/g6ling/react-native-uploader
「無法爲URI /storage/emulated/0/Music/test.aac檢索文件」
權限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
陣營本地代碼
const form= new FormData();
form.append('userfile', {
uri: AudioUtils.MusicDirectoryPath + '/test.aac',
type: 'audio/aac',
name: 'userfile'
});
let xhr = new XMLHttpRequest()
xhr.open('post', `http://vidyarangam.com/next/upload_file`)
xhr.send(form)
xhr.onerror = function(e) {
console.log('err', e)
}
xhr.onreadystatechange = function() {
if(this.readyState === this.DONE) {
console.log(this.response)
}
}
PHP代碼
function upload_file() {
$droidinput = json_decode(file_get_contents('php://input'), true);
$file = $droidinput['userfile']; // i have no idea how to upload it
$config['upload_path'] = 'uploads/';
$config['allowed_types'] = '*';
$config['max_filename'] = '255';
$config['encrypt_name'] = TRUE;
$config['max_size'] = '1024'; //1 MB
$this->load->library('upload', $config);
if (!$this->upload->do_upload('userfile')) {
echo json_encode('status'=>'File upload error');
} else {
echo json_encode('status'=>'File successfully uploaded');
}
}
,什麼是執行代碼時到底會發生? – gus27
echo json_encode('status'=>'文件上傳錯誤'); –
請檢查服務器響應,我如何上傳這個 –