사진 첨부하기 너무 어렵네요. 혹시 튜토리얼을 가지신 분이나 간단하게 설명해주실 분~? |
Sep 21, 2009 네 처음 보시는 분들은 생소하실 듯 하지만 전혀 어렵지 않습니다^^; 여기서는 파일 첨부를 예로 들겠습니다.(이미지첨부는 파일첨부와 95.23423% 비슷합니다.) [파일]버튼을 클릭하면 첨부를 위한 팝업창이 나타나고 이 팝업을 통해 에디터로의 파일첨 부가 이루어집니다. 팝업창은 소스트리에서 pages/popup/file.html에서 확인하실 수 있는 데요. 이 파일의 상단부분에 있는데 20줄가량이 javascript가 파일첨부의 핵심입니다. 일반적으로 웹상에서의 파일업로드는 php나 jsp같은 serverside만을 통해 이루어집니다. multipart-form에 file을 올린 후 서버쪽 모듈로 업로드 시키고 필요하다면 file메타정보들 을 남기는 식으로 말이죠. 다음에디터에서는 에디터와의 연동을 위해 이와 같이 serverside 모듈에 추가적인 javascript가 더 들어가게 됩니다. php 코드로 예를 들어보겠습니다. [일반적인 경우] =========== upload_form.html ============== <form method="post" enctype="multipart/form-data" action="uploader.php"> 제목 : <input type="text" name="subject"> <input type="file" name="upload_file"> <input type="submit"> </form> =========== uploader.php =================== <?php $subject = $_POST['subject']; $tmpfilename = $_FILES['upload_file']['tmp_name']; $filename = $_FILES['upload_file']['filename']; $filetype = $_FILES['upload_file']['type']; $filesize= $_FILES['upload_file']['size'] $destination = "/upload/" . $filename; $fileurl = "http://my.homepage.com/upload/" . $filename; move_uploaded_file ( $tmpfilename, $destination ); write_into_db_filemeta($filename, $desination, $filesize, $filetype, $fileurl); //업 로드한 이름과 파일의 사이즈나 mime/type들을 읽어서 DB에 저장하는 사용자 함수 ?> <script type="text/javascript"> alert('파일 업로드가 성공되었습니당~~'); </script> ================================================================= 위와같이 사용자에게 파일을 입력받을 폼 파일과 입력받은 파일을 서버에 저장하고 서버모 듈이 일반적인 경우입니다. 위의 예제에서는 약간의 수정을 가한것이 서버모듈이 실행된후 사용자에게 업로드가 완료되었음을 알려주는 alert창을 띄워보았습니다. 에디터와 연동되는 javascript는 저 부분에 들어가면 됩니다. alert창 대신 서버에 올라간 파일의 데이터를 에디터에 전달해주는 스크립트를 삽입하는것이지요. ============== uploader.php ========================= //여기까지는 위와같습니다. write_into_db_filemeta($filename, $desination, $filesize, $filetype, $fileurl); ?> <script type="text/javascript"> if (typeof(execAttach) == 'undefined') { //Virtual Function return; } var _mockdata = { 'attachurl': '<?=$fileurl?>', 'filemime': '<?=$filetype?>', 'filename': '<?=$filename?>', 'filesize': <?=$filesize?> }; execAttach(_mockdata); closeWindow(); </script> ===================================================== php에서 받은 파일의 정보를 javascript의 execAttach 함수에 넘겨주기만 하면 됩니다. 그전에 업로드 창에서는 에디터 객체를 알고 있어야 하기 때문에 다음과 같은 초기화 구문 이 필요합니다. =======================초기화 구문(uploader.php 포함됨) ========= var _opener = PopupUtil.getOpener(); var _attacher = getAttacher('file', _opener); registerAction(_attacher); ======================================================================= 요약하자면 file.html 을 위에서 만든 upload_form.html로 대체한 후 uploader.php 으로 업로드 모듈을 넣어주고 file.html 에서 쓰던 에디터 연동용 javascript코드를 uploader.php에서 실행시켜 주면 간단하게 업로드를 구현하실 수 있습니다. | ,
2010년 2월 10일 수요일
다음 스마트에디터 파일첨부 예제
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기