FormData를 사용하여 오디오 파일을 서버에 업로드할 수 있습니까?
묘사
2016-11-02 21:29 나는 답이 있다. 네, 할 수 있어요.나는 이런 방식으로 그림을 업로드하는 데 성공했지만, 오디오를 업로드하는 데 실패했다. 서버는 이미 오디오 파일을 받았지만, 크기는 0이다. 나는 모른다. 도와주십시오.
I used react-native-fileupload upload audio file success, but react-native-fileupload can not run on Android, and it seems that no one to maintain.
I noticed this: https://github.com/jsierles/react-native-audio/issues/97 @RakanNimer said: If you want to upload and download voice files then using react-native-fs would be a great idea.
여보세요
고쳤어요?
토론 #1
@Sumrocks 네, 쓰세요.Android에서토론 #2
를 추가해야 합니다.const path = 'file://' + AudioUtils.DocumentDirectoryPath + 'test.aac'
너무 많아!!!file://
안녕하세요, 질문 감사합니다.대답 고마워요.그러나 내가 도착한 단점은 설정이 필요하다
토론 #셋
.만약 내가 이렇게 한다면react native는 나에게 이 오류토론 #4
를 줄 것이다.내용 유형을 설정할 방법이 있습니까?나는
'Content-Type': 'audio/acc'
시도했지만, 나의 종점에서 오류가 돌아왔다.이것은 내 코드입니다.
uploadAudio = async () => {
const path = `file://${AudioUtils.DocumentDirectoryPath}/test.aac`
const formData = new FormData()
formData.append('file', {
uri: path,
name: 'test.aac',
type: 'audio/aac',
})
try {
const res = await fetch(API_UPLOAD_MSG_FILE, {
method: 'POST',
headers: {
'Content-Type': 'multipart/form-data',
},
body: formData,
})
const json = await res.json()
} catch (err) {
alert(err)
}
}
multipart != audio/acc
+1'Content-Type':'multipart/form-data'
원하실 거예요토론 #5
,파일 유형이나 메타 유형이
토론 #6
에서 추출되었습니다.크롬 디버거가 열려 있지 않도록 생산 모드에 있는지 확인하겠습니다. (요청이 종료됩니다.)당신의 ${file path}를 기록해서 파일을 배로 만들지 않았는지 확인하십시오:/
'Content-Type': 'multipart/form-data'
@gregbenner. 당신의 평론에 감사드립니다. 예를 들어 주시겠습니까?어디에 두어야 할지 몰라type:audio/${ext}
.토론 #7
이거 제가 쓰는 거예요.https://github.com/expo/expo/issues/214#issuecomment-316950941서버 if 노드에서
type:audio/${ext}
토론 #8
를 사용해야 하는데 @Noitidart에 도움이 됩니까?multer
_upload=async()=>{우리 같이 하자.http://103.234.184.240/api_for_solutions/upload_recording';
const data = new FormData();
const ext = 'acc';
data.append('file', {
uri:`file://${file_path}`,
name:`recording.${ext}`,
type:`audio/${ext}`
}, `recording.${ext}`);
const response = await fetch('https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?continuous=true', {
method: 'POST',
headers: {
'Content-Type': `audio/${ext}`,
// 'Content-Type': 'multipart/form-data',
'X-Watson-Authorization-Token': token
},
body: data
});
console.log('watson-stt::getResults - response:', response);
if (response.status !== 200) {
const error = await response.text();
throw new Error(`Got bad response "status" (${response.status}) from Watson Speach to Text server, error: "${error}"`);
}
}출력: - 네트워크 요청 실패
제 잘못을 해결해 주세요. 저는 신출내기입니다.
미리 감사
토론 #9
@Biplovkumar copy 붙여넣기https://github.com/expo/expo/issues/214#issuecomment-316950941토론 #10
@gregbenner 저도 당신의 코드를 복사했지만 같은 네트워크 요청 오류를 받았습니다.그것은 물건을 찾는 것과 관계가 있습니까?제 말은 제3자 플러그인을 사용해야 한다는 것입니다. 예를 들어axios입니까?fetchblob입니까?토론 #11
헤이@ShooterArk@Biplovkumar 해결책을 찾았습니까?토론 #12
@SumRocks Yes, use
const path = 'file://' + AudioUtils.DocumentDirectoryPath + 'test.aac'
. On Android, you must addfile://
.
효과가 없다
도와 드릴까요?
Reference
이 문제에 관하여(FormData를 사용하여 오디오 파일을 서버에 업로드할 수 있습니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/jsierles/react-native-audio/issues/107텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)