2011-11-10 4 views
0

사용자가 HTML 버튼을 클릭 할 때 다른 이름으로 저장 대화 상자를 표시하려고합니다. DOJO와 JavaScript를 사용하고 있습니다. IE document.exec에서 구조를 구할 수 있지만 Firefox에서는 NSI를 사용하기 위해 파일 시스템을 변경해야합니다.Firefox의 대화 상자로 저장

어떤 아이디어라도 환영합니다.

답변

1

는 :

이 주요 문제는 사용자가 파일 이름과 생성 된 파일 이름을 선택할 수 없다는 점입니다
content = "This is the text for downloading"; 
window.location.href = "data:application/octet-stream,"+ 
      encodeURIComponent(content); 

는 어떤 임의의 해시 . 플래시 사용에 신경 쓰지 않는다면 Downloadify을 사용할 수 있습니다. 저장 대화 상자를보다 잘 제어 할 수 있습니다.

0

HTML 단추 href를 알 수없는 문서 유형으로 지정하십시오. 성도착시 FileName.xxxblah

그러면 자동으로 으로 저장 대화 상자가 트리거됩니다.

당신은 데이터 URL을 사용하여 일부 데이터를 다운로드 할 브라우저를 강제 할 수
0

정확하게 찾고있는 것은 아니지만 신뢰할 수있는 유일한 방법은 서버에 올바른 헤더를 보낼 서버 측 스크립트를 만드는 것입니다. PHP 이것은 당신이 그것을 할 거라고 방법은 다음과 같습니다

header('Content-type: text/csv'); 
header('Content-Disposition: attachment; filename="mydocument.csv";'); 
header('Content-length: '.(int)strlen($csvData)); 

print($csvData); 

Content-type 문서의 "MIME 형식"이며, 일부 브라우저와의 호환성을 위해이 완벽하게 파일 이름의 확장자와 일치 중요합니다.

Content-Disposition: attachment은 해당 MIME 유형에 대해 일반적으로 그렇게하지 않더라도 페이지를 다운로드하도록 지시하고 파일 이름을 제공 할 수 있습니다.

Content-length은 다운로드 크기이며 선택 사항이지만 다운로드 진행률 표시 줄을 보려면 사용자에게 제공해야합니다.

일부 브라우저는 다른 이름으로 저장 대화 상자를 표시하고 다른 브라우저는 사용자가 선호하는 다운로드 폴더에 파일을 저장하기 만합니다. 당신은 어떤 일이 일어날 지 많은 통제권을 가지고 있지 않습니다.

관련 문제