2014-01-22 4 views
5

클라이언트 측 뮤직 플레이어를 개발 중이며 mp3 데이터로 재생 목록을 저장하는 방법을 찾고 있습니다.다른 브라우저에서 파일 저장 버튼을 사용할 수 있습니까?

localstorage 옵션 out 인 localStorage 규칙의 5MB 제한. 다른 옵션이 있는지 궁금하네요.

DataURIs 나는 dataURI에 대해 읽었습니다. Is there any way to specify a suggested filename when using data: URI?Cross-browser Save As .txt 그러나 기본 파일 이름을 제안하지 않으며 특히 IE 지원이 부족한 것은 거래자입니다. 색인화 된 HTML5 indexedDB and persistence lifetime

는 색인화가 영구 저장소에 대한 옵션이 아니라는 것을 시사한다.

누락 된 옵션이 있습니까? 나는 그렇게 희망한다!

감사합니다, 앤드류

지금이 영감 IE, 크롬과 파이어 폭스에서 작동하는 솔루션이
+1

그래서 클라이언트 측만 서버가 관련되어 있습니까? 그렇다면 왜 이미 클라이언트에 있어야하기 때문에 mp3 데이터를 다운로드/저장해야하는지 알지 못합니다. 재생 목록 파일에 대한 5MB 제한은 실제 문제가 아니어야합니다. – CBroe

+0

수정 된 헤더가있는 새 브라우저 탭에서 파일을 엽니 다. Content-Disposition : attachment; filename = "playlist.txt"'. 나는 이것이 항상 브라우저에서 팝업으로 저장되도록 할 것이라고 믿는다. – slash197

+0

제목과 질문 자체가 다른 것을 묻습니다. 질문 자체가 혼란을 더욱 가중시킵니다. 정확히 원하는 것은 무엇입니까? – gpgekko

답변

2

: Javascript set file in download

IE10 + 솔루션은 msSaveBlob를 사용하고 코드는 다음과 같습니다

if (navigator.msSaveBlob) { 
    var blob_object = new Blob([store_string], {type: mime_type}); 
    return navigator.msSaveBlob(blob_object, filename); 

    } 

Chrome/Firefox의 경우 다운로드 속성을 사용합니다.

else if ('download' in a) { 
    blob_object = new Blob ([store_string], {type: mime_type}); 
    a.href = URL.createObjectURL(blob_object); 
    a.setAttribute("download", filename); 
    a.innerHTML = "downloading..."; 
    d.body.appendChild(a); 
    setTimeout(function() { 
     a.click(); 
     d.body.removeChild(a); 
    }, 66); 
    return true;  
} 

Safari, Opera 또는 모바일 브라우저를 아직 조사하지 않았습니다 ...

2

아니요 - 브라우저 SaveAs 솔루션 을 사용할 수 없습니다..

크롬, IE, & FF는 모두 파일의 다운로드 (및 saveAs 대화 상자)를 프로그래밍 방식으로 트리거하는 한 가지 (또는 여러 가지) 방법을 지원합니다. Safari는이 기능을 지원하지 않습니다.