다운로드
Download
특징 및 참고
  1. IE FF Safari 됨
  2. 실버라이트로 만들었습니다. 사용자 컴퓨터에 실버라이트가 설치되어있어야 합니다.
  3. 총 90MB까지 업로드 가능 합니다.(HTTPRequest가 100MB 이상일 때 메모리 부족하다고 토해내더라구요. 소켓 열어 해야하나...)
  4. 한번에 여러 파일을 보낼 수 있습니다.(이거 때문에 만들었습니다. 제 실력이 부족한지 처음엔 플래시로 만들다가 도저히 불가능해서 실버라이트로 만듬.)
  5. 업로드 할 파일 이름을 변경해 업로드 할 수 있습니다.(서버 측에서 변경해도 되지만..)
  6. 파일 및 파라미터가 없어도 서브밋 가능합니다.
  7. base64로 인코딩 된 파일 내용을 가져올 수 있습니다.
  8. upload 속도롤 조절 할 수 있습니다.(목표는 프로그레스바 만들때 테스트 - 좋은 생각 or 업로드 속도제한 - 별로 안 좋은 생각)
라이센스
  1. 상업적 용도로 사용 할 수 없습니다.
  2. 우주 정복 또는 지구 파괴를 목적으로 사용 할 수 없습니다.
예제
Name :
Value :


사용법
  1. 적당히 헤더쯤에 씁니다.
    <script src="mfuploader.js"></script>
  2. 파일 추가 버튼이 있어야 하는곳에 씁니다.(굳이 옵션 안 써주셔도 됩니다.)
    <script>var uploader = MFUploader.write();</script>
  3. 업로드 버튼이 있어야 하는 곳에 씁니다.
    <button onclick="uploader.upload()">upload</button>
uploader 인터페이스
  1. void uploader.upload() : 현재 선택된 파일 들을 업로드 합니다.
  2. void uploader.stop() : 업로드 진행중이라면 멈춥니다.
  3. void uploader.reset() : 현재 선택된 파일들을 모두 없앴고 초기상태로 돌립니다.(업로드 중에 호출 불가)
  4. void uploader.setOption(name, value) : 옵션을 설정합니다.
  5. void uploader.setUploadURL(url) : 업로드 URL을 변경합니다.
  6. void uploader.setFilter(filter) : 파일 필터를 변경합니다.
  7. files uploader.getFiles() : 현재 선택 된 모든 파일을 반환합니다.
  8. void uploader.removeFile(idx) : 순서상 idx번째 있는 파일을 큐에서 제거합니다.
  9. void uploader.removeAllFiles(idx) : 큐에 모든 파일을 제거합니다.
  10. void uploader.addParam(name, value) : 업로드 POST 파라미터에 값을 추가합니다.
  11. void uploader.removeParam(idx) : idx번째 파라미터를 삭제합니다.
  12. void uploader.removeParamByName(name) : name 이름을 가진 모든 파라미터를 삭제합니다.
  13. void uploader.removeAllParams(name) : 모든 파라미터를 삭제합니다.
  14. void uploader.setParams(name-value object) : 현재 모든 파라미터를 삭제 후 새 파라미터로 설정합니다.
file 인터페이스
  1. file.name : 파일 이름(변경해도 됩니다. 로컬 파일 이름을 변경 후 업로드 할 수 있습니다.)
  2. file.size : 파일 크기
  3. file.ext : 파일 확장자
  4. file.data : 파일 내용을 base64로 인코딩 된 값입니다.(data:// 허용하는 IE8 FF Safari에서 좋을 듯)
옵션 : MFUploader.write([업로드옵션들], [실버라이트옵션들])
  1. 업로드 옵션들
    { ButtonURL : './btn.png', // 버튼 이미지 [그냥,오버,다운,비활성] 순서로 가로로 붙인 이미지여야 합니다.
    이거처럼요. UploadURL : './upload.php', // 업로드할 URL FileFiled : "FileFiled[]", // 호스트가 받을 파일필드 이름 tick : 100, // 업로드 진행 이벤트를 받을 시간 간격 밀리초 delay : 0, // 업로드 1kb당 딜레이 할 시간 밀리초 multiple : true, // 파일 선택 다이얼로그에서 사용자가 여러개 선택할 수 있을지 여부 filter : "Image Files (.png; .gif; .jpg)|*.png; *.gif; *.jpg|All Files (*.*)|*.*", // 파일 선택 다이얼로그에서 파일 필터링 onload : null, // 컨트롤 로드가 완료되면 호출됨 onadd : function(file){ // 파일 선택 다이얼로그에서 사용자가 파일을 선택 하면 추가 하기전에 호출합니다. // return false; 해주면 파일이 추가 되지 않습니다. // file : 추가할 파일 return true; }, onadded : function(file){ // 파일이 추가 되면 호출됩니다. // file : 추가된 파일 return; }, onprogress : function(file, info){ // 업로드 진행 중에 호출 됩니다. // file : 진행중인 파일 // info : 진행 정보 // info.filesend : 보낸 파일 바이트 // info.filesize : 보내는 파일 바이트 // info.totalsend : 보낸 전체 파일 바이트 // info.totalsize : 보낼 전체 파일 사이즈 info.filesend + " / " + info.filesize + "<br>" + info.totalsend + " / " + info.totalsize; return; }, oncomplete : function(resp){ // resp : 호스트에서 출력한 내용 TEXT alert(resp); }, onstop : function(){ // uploader.stop() 실행시 진행중인 업로드를 멈추고 호출 return; }, onerror : function(msg){ // 에러 나면 호출 // msg : 에러 메세지 // 1. "btn : http://~~~~" : 버튼 이미지를 로드 못했을때 호출 // 2. "size : ~~~" : 파일이 추가되면 업데이트 할 전체 크기가 90MB를 넘어버려서 추가 안 할때 호출 // 3. "url : http://~~~" : 업로드 할 URL이 200 OK 를 안 보내 줄때 호출 alert("error : \n" + msg); } }
  2. 실버라이트 옵션들
    { width : "63px", // 컨트롤 가로 길이 height : "21px", // 컨트롤 세로 길이 source : "MFUploader.xap", // xap 파일 위치 minRuntiomeVersion : "3.0.40723.0", // 실버라이트 최소 버젼 바꾸지 마세요 autoUpgrade : "true", // 실버라이트 자동 업데이트 활성 바꾸지 마세요 background : "#FFFFFF", // 컨트롤 배경색(transparent도 되지만 사파리가 싫어함) maxFrameRate : "10", // 화면 갱신 속도 빨르게 해봤자임 windowless : "true", // HTML 페이지에 직접 그림(false는 파이어폭스가 싫어함) onLoad : "MFUploader_OnLoad", // 수정하지 마세요 message : "Install Silverlight", // 실버라이트가 안 깔려있을대 대체 표시 메세지 style : "position:relative;" // <OBJECT> tag css style }