2015-01-29 4 views
-1
string fileName = "1001-1000-1_29_2015 2_04_22 PM.wav"; 
string filePath = Server.MapPath("Audio") + "\\" + fileName; 

IE에서 다음 줄을 사용하여 .wav 파일을 내 보냅니다. Response.Redirect();으로다른 이름으로 저장 대화 상자를 표시하여 파일 내보내기

Response.Redirect("Audio/" + fileName); 

은 아무것도 (페이지, 파일 등)로 사용자를 리디렉션하는 데 사용됩니다. 따라서 IE에서는 사용자에게 저장하기 위해 SaveAsDialogue을 보여줍니다.

그러나 크롬에서 브라우저의 기본 동작은 지정된 파일로 리디렉션하고 크롬에서 재생하는 것입니다.

.wav 파일을 두 브라우저에서 모두 SaveAsDialogue으로 보내고 싶습니다.

Response.Clear(); 
Response.ContentType = "Audio/wav"; 
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName); 
Response.TransmitFile(filePath); 
Response.Flush(); 
Response.End(); 

을하지만 여전히 나는 크롬에서 내 .wav 파일을 전송하는 성공하지 해요 :

나는 크롬에 대해 다음 코드를 시도했다.

답변

2

이렇게하면 정렬됩니다.

Response.Clear(); 
Response.ContentType = "application/octet-stream"; 
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName); 
Response.TransmitFile(filePath); 
Response.Flush(); 
Response.End(); 

편집 : 일반적인 하나에 컨텐츠의 MIME 타입을 변경하여 여기에 내가 사용하고 정확한 코드는 그것도 WAV 파일과 함께 작동합니다

Response.Clear(); 
Response.ContentType = "application/octet-stream"; 
Response.AddHeader("Content-Disposition", "attachment; filename="+ fileName); 
Response.WriteFile(file); 
Response.End(); 

에 저장하기 대화은 강제 될 수없는 클라이언트 측 기능입니다 *. 첫 번째 인스턴스에서 IE가 제공하는 이유는 파일에 직접 액세스하려고 할 때 파일을 어떻게 처리해야할지 모르기 때문입니다. 위의 방법은 브라우저에서 직접 재생/렌더링하지 않고 다운로드하도록합니다. 링크를 마우스 오른쪽 버튼으로 클릭하고 Save link as...을 선택할 수 있습니다.

* MIME 형식을 서버에서 파일 유형에 맞게 잘못 설정 한 경우 원본 Response.Redirect 방법을 사용하면 서버를 망칠 수 있으며 두통이 없어집니다. 선. 당신이, 당신이 설정로에 필요에 다운로드를 저장할 위치를 당신에게 모든 시간을 물어 크롬을 변경 고급 설정을 클릭합니다

... 그러면 어디 제목 다운로드 아래로 스크롤 **

Downloads Setting in Chrome

+0

아니, 그것은 ** 구글 크롬에서 작동하지 않았다 **조차 ** IE에서 '이 같은 것을 볼 것이다. –

+0

편집 –

+0

을 참조하십시오. Chrome에서 내 다운로드에 대해 이미 확인했으며 제 경우에는 적용되지 않았습니다. –