[JS] 멀티 파일다운로드 꽁수로 구현하기

다중 파일 다운로드를 스크립트 꽁수로 구현해봅니다.
몇 줄 안되는 소스를 보면 알겠지만, 보이지 않는 iframe을 생성해서 경로를 걸어주는 게 전부입니다.

간단하게 멀티 파일다운로드를 구현할 수 있다는 것 이외엔 장점이 별로 없는 꽁수입니다(꽁수는 꽁수일뿐~). ^^;;;

이 부분이 소스입니다.

/**
* by 행복한고니(20041007)
*/
function mdown(N)
{
var objs = document.getElementsByName(N);
var Body = document.getElementsByTagName('BODY')[0];
var j;

for (var i=j=0; i < objs.length; i++) { if (!objs[i].checked) continue; if (mdown.fList[j] == undefined) { mdown.fList[j] = document.createElement("IFRAME"); mdown.fList[j].style.display = 'none'; Body.appendChild(mdown.fList[j]); } mdown.fList[j].src = mdown.GetURL(objs[i].value); j++; } } mdown.fList = []; //---------------------------------------------------------------- // 사용자 정의 함수 구현부 //---------------------------------------------------------------- mdown.GetURL = function(val) { // 이 함수를 각자의 프로그램 사양에 따라 적당히 만들어주세요. // 체크박스에 있던 value 값이 val로 전달됩니다. return 'http://mysite.com/download.php?fileid='+val+');'; }

우선 파일 다운로드를 하는 프로그램을 download.php 라고 가정합니다.

이 때, download.php 에서 파일을 다운로드 할 때 download.php?fileid=아이디번호 와 같은 식으로 쓴다고 가정합니다. 이 규칙에 의해서 mdown.GetURL 함수를 사용자가 작성합니다.

스크립트를 포함한 후, 예제 HTML은 다음과 같이 쓸 수 있습니다.

1번 파일
2번 파일
3번 파일
4번 파일

아래가 예제입니다.
[#NOBR_START#]

자바스크립트로 구현한 5kb짜리 울펜슈타인 3D
슬라이딩 메뉴 스크립트 파일
이 팁에 쓰인 파일

[#NOBR_END#]

[##_1C|627285.zip|| 다운로드 받으시려면 클릭! _##]

PS// 매번 자바스크립트 만들때마다 브라우저 호환성을 같이 적었는데, 이제 귀찮네요... -_-;;
앞으로 별다른 설명이 없다면 그냥 최신의 {모질라 계열, 오페라, IE} 에서는 다 된다고 생각해주세요.

  1. 좋은 소스 감사합니다...
    문제점이 있어 이럭게 글을 올립니다..
    위 예제처럼 현 페이지에서 선택 다운로드하면 잘 됩니다..
    그런데..팝업으로 띄운창에서는 안되네요...뭐가 문제인지..

    예를들어 게시판을 생각해보면..리스트에서 첨부파일이 있을경우 글머리에 클립이나 파일이미지로 표시를 합니다.. 그 표시된 이미지를 클릭하면 팝업으로 뜨면서 첨부된 파일을 자동으로 다운받을려구 하거든요...그런데..안되네요..
    그래서 이미지를 클릭했을때 location으로 처리를 해보았는데..이건 잘되구요...
    위 코드가 새창에서는 안되는것인가요...

  2. lovejin // 안될리가 없을텐데요....?
    그 새창으로 만들었다는 부분의 HTML 소스를 보내주실 수 있으시다면 보고 분석해보도록 하겠습니다. 🙂

  3. 음..고니님 포스트중에 예제를 가지고 팝업으로 했는데도 안되네요...ㅠㅠ..

    클릭(팝업으로 처리-안됨)

    클릭(location으로 처리-잘됨)

    왜 그런거죠?...새창이랑 부모창이랑 머가 틀린건지...
    아이프레임 스타일을 inline으로 주고 가로세로 다 준

  4. lovejin // 다 확인해봤는데, Window2000 Pro SP4, IE6 SP1, Firefox 1.0PR 에선 잘되고 오페라 웹브라우저에서만 안되는군요. 안되는 환경을 말씀해주실 수 있을까요?

  5. 질문드릴께요 ..소스 감사해요
    그런데요. wma 파일들은 다운이 안되고 미디어 플레이어가 열리는데
    음악파일도 다운 받을수 있게는 안될까요.

댓글을 남겨주세요

This site uses Akismet to reduce spam. Learn how your comment data is processed.