다중 파일 다운로드를 스크립트 꽁수로 구현해봅니다.
몇 줄 안되는 소스를 보면 알겠지만, 보이지 않는 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} 에서는 다 된다고 생각해주세요.
스쿨에서 보고 왔습니다.
좋은 팁 감사해요~! ^^*
잘 보고 갑니다...^^ 수고 하세요..
좋은 소스 감사합니다...
문제점이 있어 이럭게 글을 올립니다..
위 예제처럼 현 페이지에서 선택 다운로드하면 잘 됩니다..
그런데..팝업으로 띄운창에서는 안되네요...뭐가 문제인지..
예를들어 게시판을 생각해보면..리스트에서 첨부파일이 있을경우 글머리에 클립이나 파일이미지로 표시를 합니다.. 그 표시된 이미지를 클릭하면 팝업으로 뜨면서 첨부된 파일을 자동으로 다운받을려구 하거든요...그런데..안되네요..
그래서 이미지를 클릭했을때 location으로 처리를 해보았는데..이건 잘되구요...
위 코드가 새창에서는 안되는것인가요...
lovejin // 안될리가 없을텐데요....?
그 새창으로 만들었다는 부분의 HTML 소스를 보내주실 수 있으시다면 보고 분석해보도록 하겠습니다. 🙂
음..고니님 포스트중에 예제를 가지고 팝업으로 했는데도 안되네요...ㅠㅠ..
클릭(팝업으로 처리-안됨)
클릭(location으로 처리-잘됨)
왜 그런거죠?...새창이랑 부모창이랑 머가 틀린건지...
아이프레임 스타일을 inline으로 주고 가로세로 다 준
고니님..지금 트래백 확인해보세요...(^^)
lovejin // 다 확인해봤는데, Window2000 Pro SP4, IE6 SP1, Firefox 1.0PR 에선 잘되고 오페라 웹브라우저에서만 안되는군요. 안되는 환경을 말씀해주실 수 있을까요?
질문드릴께요 ..소스 감사해요
그런데요. wma 파일들은 다운이 안되고 미디어 플레이어가 열리는데
음악파일도 다운 받을수 있게는 안될까요.
김기남 // wma, pdf 나 이미지 등 브라우저에서 바로 보여지도록 설정되어있는 파일들은 따로 download 할 수 있는 프로그램과 함께 사용하시는 것이 좋습니다.
http://phpschool.com/bbs2/inc_view.html?id=10187&code=tnt2
이 글을 참고해보시면 어떨까요
멋집니다.
만들수는없지만 느낄수는 있네요.. ^^