2017-05-02 18 views
0

오디오 레코드를 작성 중입니다. 이제 녹음 된 오디오를 우리 지역에 직접 저장하고 싶습니다. 오디오를 녹음하면 다음과 같은 BLOB URL이 반환됩니다.디렉토리에 BLOB URL 데이터를 저장하는 방법

blob : http://example.com/7737-4454545-545445.

이 URL을 클릭하면 녹음 된 오디오가 재생됩니다. 이제 로컬 URL을 저장하기 위해 js에서 PHP 스크립트로 그 blob URL을 보내고 있지만 작동하지 않습니다.

어떻게하면됩니까?

+0

그것은하지 도움 (자바 스크립트가 전송되지? PHP를 수신하지? 저장된하지만 읽을 수 없습니다? 저장되지 파일?) 코드 위 –

답변

3

Blob URLdocument에 연결되어 있으며 Blob URLBlob 또는 File 개체로 생성했습니다. Blob URLBlob에 대한 참조로 서버에 게시 할 수 없습니다 snapshot state에 저장됩니다. Blob URL Store을 참조하십시오.

당신은 Blob URLBlob 표현을 얻을 서버에 FormData을 게시 fetch(), Response.blob()를 사용할 수 있습니다. 당신이 당신의 코드를 게시하고 작동하지 않는 정확히 알려하지 않는 경우

// `blobURL` : `"blob:http://example.com/7737-4454545-545445"` 
fetch(blobUrl).then(response => response.blob()) 
.then(blob => { 
    const fd = new FormData(); 
    fd.append("fileName", blob, "file.ext"); // where `.ext` matches file `MIME` type 
    return fetch("/path/to/server", {method:"POST", body:fd}) 
}) 
.then(response => response.ok) 
.then(res => console.log(res)) 
.catch(err => console.log(err)); 
+0

다음주고있다 error- TypeError : HEAD 또는 GET 요청에 본문을 사용할 수 없습니다. –

+0

업데이트 된 게시물보기. 두 번째 매개 변수에서 전달 된'init' 객체에서'method'를''POST''로 설정하십시오. https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch – guest271314

+0

PHP 스크립트에서 $ __ FILES 요소를 얻고 있습니다. 업로드의 경우 다음 코드를 사용하고 있습니다. 그러나 오디오 파일 대신 단순히 blob이라는 파일을 저장합니다. define ('UPLOAD_DIR', 'uploads /'); if ($ _ FILES [ 'fileName']) { \t $ target_path = UPLOAD_DIR. basename ($ _FILES [ 'fileName'] [ 'name'])); \t (인 move_uploaded_file ($ _ FILES [ 'fileName에'] [ 'tmp_name'], $의 target_path)) { \t \t 에코 "파일"의 경우. basename ($ _FILES [ 'fileName'] [ 'name']). \t \t "업로드되었습니다."; \t} else { \t \t echo "파일을 업로드하는 중에 오류가 발생했습니다. 다시 시도하십시오."; 여기에서 오디오 파일을 어떻게 가져올 수 있습니까? \t} } –