2012-07-06 3 views
1

gridview 내에서 파일을 다운로드하는 응용 프로그램이 있습니다. 단일 파일을 행에 첨부하면 파일을 쉽게 다운로드 할 수 있지만 연속적으로 여러 파일을 만들려고하면 응용 프로그램을 더 이상 다운로드 할 수 없습니다. 아무도 내가 이것을 성취 할 수있는 방법을 제안 할 수 있을까요? 사전에하나의 Gridview 행에서 여러 파일 다운로드 asp.net C#

감사

+0

파일을 압축 해보십시오. http://geekswithblogs.net/twickers/archive/2005/11/08/59420.aspx – NoLifeKing

+0

초기 요구 사항이므로 파일을 압축하지 않고도이 작업을 수행 할 수 있습니까? – imdondo

+0

여러 파일이있는 경우 왜 같은 행에 추가합니까? 다른 girdview에 그걸 보여줄 수 없니? 아마 행 선택에? – nunespascal

답변

1

사용자 클릭하고 파일을 다운로드 당신이 사용자에게 하나 개 이상의 파일을 다운로드 할 수있는 기능을 제공하는 원 경우이 javacript 명령

window.location = "FileForDownload.jpg"; 

에게 줄 수있는 것은 더 많은 경우 복잡해.

전나무 브라우저는 사용자가 여러 다운로드를 수락 할 때까지 브라우저가 해당 작업을 경고하고 중지한다는 것을 알아야합니다.

window.location에서 많은 파일을 보낼 수 있다고 쉽게 말할 수 있지만 동기화가없는 경우 한 파일에서 다른 파일을 중지 할 수 있습니다. 여기에서 동기화는 can be done with this trick of cookies이고 첫 번째 시작 (또는 끝) 이후에만 두 번째 다운로드 명령을 내립니다.

한 가지 해결 방법은 동기화가 필요하지 않은 window.open("FileForDownload.jpg");을 여러 번 호출하는 것입니다 (물론 타이머 지연이 있음).

이것은 자바 스크립트의 일반적인 개념이지만 지연된 파일을 열려면 약간의 개선이 필요합니다.

function DownloadAllFiles() 
{ 
    for (var i=0; i< arguments.length; i++){  
     window.open("http://www.domain.com/downloadpath/" + arguments[i]);) 
    } 
} 


// example of call 
DownloadAllFiles("File1.zip","File2.zip","File3.zip"); 
+0

나는 귀하의 접근 방식이 마음에 들었고, 간단하고 여전히 jQuery가 필요하지 않습니다. 또한 코드 뒤에 자바 스크립트를 시작하는 코드를 추가 할 수도 있습니다. :) – NoLifeKing