================= MNetwork Extends ================= MNetExt Framework 에 대한 필수 API 를 정의 --------- NetExt API --------- 확장된 네크워크 관련된 기능들을 제공 HTTP 파일 업로드 -------------- .. js:function:: M.net.http.upload( setting ) .. versionchanged:: 2.0.0 :param Object setting: 리소스 업데이트를 위한 설정 정보 :param String setting.url: 파일을 업로드 하기 위한 url :param Object setting.headers: http header 정보 :param Object setting.parameters: 업로드 파라메터 정보 :param Array setting.body: multipart body 정보 :param String setting.encoding: 인코딩 :param Bool setting.indicator: 인디케이터 여부 :param Function setting.finish: 파일 업로드 완료 :param Int setting.timeout: 타입 아웃 (milliseconds) .. js:function:: finish( statusCode, header, body ) :param String statusCode: 실행 결과 코드 :param String header: 응답 헤더 정보 :param String body: 응답 바디 정보 :param Function setting.progress: 파일 업로드 프로그래스 .. js:function:: progress(total, current, remaining, percentage) :param String total: 업로드 파일 사이즈 :param String current: 업로드된 파일 사이즈 :param String remaining: 남은 파일 사이즈 :param String percentage: 진행률 퍼센트 * Http multipart 파일 업로드를 한다. Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들 * header = headers * param = parameters * params = parameters * onprogress = progress * onfinish = finish * callback = finish Example: .. code-block:: javascript M.net.http.upload({ url: "http://lab.morpheus.kr/api/test/file/upload", header: {}, params: {}, body: [ { content: "파일업로드", type: "TEXT" }, { name: "imgs", content: "test.zip", type: "FILE" }, { name: "imgs", content: "test/test1.txt", type: "FILE" }, { name: "imgs", content: "test/test2.txt", type: "FILE" } ], encoding : "UTF-8", finish : function(status, header, body, setting) { console.log(status); }, progress : function(total, current) { console.log(total, current); } }); .. code-block:: javascript M.media.picker({ mode: "SINGLE", media: "PHOTO", column: 3, callback: function( status, result ) { var fileList = [], fileCont = {}; fileCont.name = 'file'; fileCont.content = ( M.navigator.os('android') ) ? result.fullpath : result.path; ; fileCont.type = 'FILE'; fileList.push(fileCont); M.net.http.upload({ url: "http://210.104.181.170:8280/board/attach", header: {}, params: {index : "3"}, body: fileList, encoding : "UTF-8", finish : function(code, header, body, status, error) { if (status == 'SUCCESS') { M.pop.alert( status + " / " + header + body ); } else { M.pop.alert( status + " / " + error ); } } }); } }); .. code-block:: javascript M.media.picker({ media: "PHOTO", choice: "MULTI" }, function(status, result) { M.tool.log(status, result); //alert( status + ", " + JSON.stringify(result) ); if ( status === "SUCCESS" ) { M.net.http.upload({ url: "http://210.104.181.170:8280/board/attach", header: {}, params: {}, files: result, encoding : "UTF-8", finish : function(status, header, body, setting) { }, progress : function(total, current) { } }); } }); HTTP 파일 다운로드 -------------- .. js:function:: M.net.http.download( setting ) .. versionchanged:: 2.0.0 :param Object setting: 파일 다운로드를 위한 설정 정보 :param String setting.url: 다운로드 파일 url :param Object setting.headers: http header 정보 :param Object setting.parameters: 다운로드 파라메터 정보 :param String setting.method: 전송 방식 (GET, PUT, POST, DELETE) :param String setting.directory: 다운로드 폴더 :param String setting.contentType: 컨텐트 타입 :param Int setting.timeout: 타입 아웃 (milliseconds) :param String setting.encoding: 인코딩 타입 :param Bool setting.indicator: 인디케이터 여부 :param Bool setting.overwrite: 덮어 쓰기 여부 :param Function setting.finish: 파일 다운로드 완료 .. js:function:: finish( statusCode, header, fileInfo, status, error ) :param String statusCode: 응답 상태 코드 :param String header: 응답 헤더 정보 :param String fileInfo: 다운로드 파일 정보 :param String status: 다운로드 결과 ( SUCCESS: 성공 코드, FAIL: 실패 코드 ) :param String error: 오류시 메세지 :param Function setting.progress: 파일 업로드 프로그래스 .. js:function:: progress(total, current, remaining, percentage) :param String total: 다운로드 파일 사이즈 :param String current: 다운로드된 파일 사이즈 :param String remaining: 남은 파일 사이즈 :param String percentage: 진행률 퍼센트 * web server에 있는 파일을 다운로드 한다. Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들 * mimetype = contentType * dir = directory * path = directory * header = headers * param = parameters * params = parameters * data = parameters * onprogress = progress * onfinish = finish * callback = finish Example: .. code-block:: javascript M.net.http.download({ url: 'https://s3-ap-northeast-1.amazonaws.com/morpheus-storage/lab/documents/morpheus_2.0_introduce_v1.3.modified.pdf', indicator: true, overwrite: true, progress: function(total, current) { console.log(total, current); }, finish: function( statusCode, header, fileInfo, status, error ) { console.log( statusCode, header, fileInfo, status, error ); if (status == "SUCCESS") { console.log( JSON.stringify( fileInfo ) ); } else { console.log( JSON.stringify( arguments ) ); } } }); FTP 파일 리스트 -------------- .. js:function:: M.net.ftp.list( setting ) .. versionchanged:: 2.0.0 :param Object setting: ftp 파일 리스트를 가져오기 위한 설정 정보 :param String setting.url: ftp 접속을 위한 url :param String setting.port: ftp 접속을 위한 port :param Object setting.acccount: account 정보 :param String setting.acccount.username: 접속 id :param String setting.acccount.password: password :param Object setting.target: 접속할 path :param String setting.target.serverpath: 접근할 path :param Function setting.finish: 리스트 호출 완료 .. js:function:: finish( resultCode, listInfo, setting) :param String resultCode: 실행 결과 코드 :param Object listInfo: 가져온 file list 정보 :param Object setting: 설정값 :param Function setting.progress: 파일 정보 가져오기 프로그래스 * ftp 통신을 통해, 파일 리스트를 가져온다. Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들 * param = parameters * params = parameters * onprogress = progress * onfinish = finish * callback = finish Example: .. code-block:: javascript M.net.ftp.list('host', { port : '21', account : { username : '', password : '', }, target : { serverpath : '' }, finish : function(resultCode, listInfo, setting) { M.tool.log( resultCode, listInfo ); alert( resultCode + ", " + JSON.stringify(listInfo) ); } }); FTP 파일 업로드 -------------- .. js:function:: M.net.ftp.upload( setting ) .. versionchanged:: 2.0.0 :param Object setting: ftp로 파일을 업로드 하기 위한 설정 정보 :param String setting.url: ftp 접속을 위한 url :param String setting.port: ftp 접속을 위한 port :param Object setting.acccount: account 정보 :param String setting.acccount.username: 접속 id :param String setting.acccount.password: password :param Object setting.target: 접속할 path :param String setting.target.localpath: 단말기의 local path(upload할 file path) :param String setting.target.serverpath: upload path :param Function setting.finish: 파일 업로드 완료 .. js:function:: finish( resultCode, resultMessage, setting) :param String resultCode: 실행 결과 코드 :param Object resultMessage: 실행 결과 메시지 :param Object setting: 설정값 :param Function setting.progress: 파일 업로드 프로그래스 * ftp 통신을 통해, 파일을 업로드 한다. Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들 * param = parameters * params = parameters * onprogress = progress * onfinish = finish * callback = finish Example: .. code-block:: javascript M.net.ftp.upload('host', { port : '21', account : { username : 'anonymous', password : '', }, target : { localpath : 'localpath', serverfiles : [ 'server_file0', 'server_file1', ], }, finish : function(resultCode, resultMessage, setting) { if (resultCode == 'SUCCESS') { // TODO : success handle code here } else { // TODO : fail handle code here } } }); FTP 파일 다운로드 -------------- .. js:function:: M.net.ftp.download( setting ) .. versionchanged:: 2.0.0 :param Object setting: ftp로 파일을 download 하기 위한 설정 정보 :param String setting.url: ftp 접속을 위한 url :param String setting.port: ftp 접속을 위한 port :param Object setting.acccount: account 정보 :param String setting.acccount.username: 접속 id :param String setting.acccount.password: password :param Object setting.target: 접속할 path :param String setting.target.localpath: 단말기의 local path(download 할 file path) :param String setting.target.serverpath: download path :param Function setting.finish: 파일 download 완료 .. js:function:: finish( resultCode, resultMessage, setting) :param String resultCode: 실행 결과 코드 :param Object resultMessage: 실행 결과 메시지 :param Object setting: 설정값 :param Function setting.progress: 파일 download 프로그래스 * ftp 통신을 통해, 파일을 download 한다. Surrogate Keys: 위 옵션키들과 같은 하위 버전 호환을 위한 대체 옵션 값들 * param = parameters * params = parameters * onprogress = progress * onfinish = finish * callback = finish Example: .. code-block:: javascript M.net.ftp.download('host', { port : '21', account : { username : 'anonymous', password : '', }, target : { localpath : 'localpath', serverfiles : [ 'server_file0', 'server_file1', ], }, finish : function(resultCode, resultMessage, setting) { if (resultCode == 'SUCCESS') { // TODO : success handle code here } else { // TODO : fail handle code here } } }); 통신 에러 코드(for Android) ---------------- ======= ====================================== CODE Description ======= ====================================== 9994 네트워크 URL Error 9995 네트워크 통신 중 취소처리 9996 네트워크 연결 에러 9997 통신중 에러 / 통신 내부 에러 9998 네트워크 응답시간 초과 에러 9999 서버에서 리턴된 에러 404 Not found(네트워크 연결 실패) ======= ======================================