포럼
[시니시즘] 파일첨부 버튼 2개 만들기 팁
2012.01.27 08:15
다들 아시겠지만 XE는 SWF Uploader를 사용하고 있습니다.
왜 굳이 SWF Uploader를 사용하느냐 불만을 가지신 몇몇 사용자 분들 보긴 했지만
SWF Uploader는 멀티셀렉트 다이어로그, file type 및 size 검사 가능, 프로그레스 핸들링 가능 등
php 업로드에 있어서 탁월한 기능을 인정받은 업로더라고 할 수 있습니다.
어떤 분은 파일첨부 아이콘을 바꾸시지 못하셔서 굉장히 아쉬워 하시더군요. 사실 디게 쉬운데.
이번 글에서는 매우 간단한 팁이지만 모르시는 분에게는 매우 난해해 하셨을 수도 있었던 꼼수팁을
가르쳐 드리려 합니다.
바로 파일첨부 버튼 2개 만들기.
/modules/editor/skins/xpresseditor/editor.html 를 열어보시면 버튼이 이런식으로 만들어져 있는걸 보실 수 있습니다.
<button type="button" id="swfUploadButton{$editor_sequence}" class="text">{$lang->edit->upload_file}</button>
여기서 버튼을 하나 더 만들어 볼까요 ㅋ
<button type="button" id="swfUploadButton{$editor_sequence}" class="text">{$lang->edit->upload_file}</button> <button type="button" id="swfUploadButton{$editor_sequence}" class="text">{$lang->edit->upload_file}</button>
XE업로더에서는 버튼의 아이디를 통해 핸들링을 합니다.
그러면 아이디가 중복되면 안되겠죠? 끝에 _1, _2로 구분시켜 주세요.
<button type="button" id="swfUploadButton{$editor_sequence}_1" class="text">{$lang->edit->upload_file}</button> <button type="button" id="swfUploadButton{$editor_sequence}_2" class="text">{$lang->edit->upload_file}</button>
자, 근데 이렇게 하니까 2개 다 먹통이 되버리죠-0- 그럼 핸들링 될 버튼의 아이디 값을 어디서 지정하느냐...
요기 있네요.
editorUploadInit({ "editorSequence" : {$editor_sequence}, "sessionName" : "{session_name()}", "allowedFileSize" : "{$file_config->allowed_filesize}", "allowedFileTypes" : "{$file_config->allowed_filetypes}", "allowedFileTypesDescription" : "{$file_config->allowed_filetypes}", "insertedFiles" : {(int)$files_count}, "replaceButtonID" : "swfUploadButton{$editor_sequence}", "fileListAreaID" : "uploaded_file_list_{$editor_sequence}", "previewAreaID" : "preview_uploaded_{$editor_sequence}", "uploaderStatusID" : "uploader_status_{$editor_sequence}" });
요걸 이렇게 바꿔줍니다 ㅋ
editorUploadInit({ "editorSequence" : {$editor_sequence}, "sessionName" : "{session_name()}", "allowedFileSize" : "{$file_config->allowed_filesize}", "allowedFileTypes" : "{$file_config->allowed_filetypes}", "allowedFileTypesDescription" : "{$file_config->allowed_filetypes}", "insertedFiles" : {(int)$files_count}, "replaceButtonID" : "swfUploadButton{$editor_sequence}_1", "fileListAreaID" : "uploaded_file_list_{$editor_sequence}", "previewAreaID" : "preview_uploaded_{$editor_sequence}", "uploaderStatusID" : "uploader_status_{$editor_sequence}" }); editorUploadInit({ "editorSequence" : {$editor_sequence}, "sessionName" : "{session_name()}", "allowedFileSize" : "{$file_config->allowed_filesize}", "allowedFileTypes" : "{$file_config->allowed_filetypes}", "allowedFileTypesDescription" : "{$file_config->allowed_filetypes}", "insertedFiles" : {(int)$files_count}, "replaceButtonID" : "swfUploadButton{$editor_sequence}_2", "fileListAreaID" : "uploaded_file_list_{$editor_sequence}", "previewAreaID" : "preview_uploaded_{$editor_sequence}", "uploaderStatusID" : "uploader_status_{$editor_sequence}" });
init을 2번 해주는거죠 ㅋ
끝입니다. ^^
버튼은 3개 4개 만들고 싶으면 _3, _4 이런식으로 계속 넣으시면 됩니다^^;
이게 어디다 써먹냐고요? 글쎄요... 언젠가 한번 써먹으실 일이 있겠죠^^ 하하;;
이외 파일첨부 관련 문의사항 있으시면 언제든지 질문 주시기 바랍니다 ;)
좋은 하루 되세요^-^;
|
댓글 17
-
misol
2012.01.29 23:29
-
시니시즘
2012.02.02 15:03
감사합니다. 사실 저는 개발자들과 의견을 나누고 싶어서^^
개발자들은 팁 게시판 잘 안들어가는거 같더라구요. (아닌가...)
사실 팁 게시물이 맞긴 맞아요. 아무튼 관심 가져주신거 감사합니다^^
-
Garon
2012.01.31 15:03
그냥 저냥 들리기에 SWF uploader 에 불만 가지신 분들 글만 보이길래, 나쁜 건지 알았습니다.
으악... ㅠ.ㅠ
-
시니시즘
2012.02.02 15:10
이왕이면 플래시를 사용하지 않는 것이 좋지만,
아직 대체할 만한 업로더를 찾지 못하고 있는걸로 압니다^^
구글이나 페이스북은 어떤 식으로 업로더를 구현하는지 궁금하군요~
-
시니시즘
2012.02.02 15:13
SWF Upload 뜯어보면 재밌어요 ㅎㅎㅎ
파일 업로드를 매우 세밀하게 제어할 수 있는 부분이 강점인거 같아요.
예를 들어서 업로드가 완료되자 마자 이미지 미리보기, 동영상 재생, 음악 재생
이런 것도 구현 가능 하답니다^^
-
Garon
2012.02.02 23:51
오홍. 어서 뜯어보고 싶어지는군요.
p.s. 오징어 뜯고 싶어요.
-
똑디
2012.01.31 17:21
확장변수에 이미지첨부 기능 추가는 어떻게 안될까요?^^
-
시니시즘
2012.02.02 15:08
저는 그런 의뢰를 받으면 첨부파일의 몇 번째 파일을 확장변수랑 연결시키곤 합니다.
좀 더 제대로 구현시킬려면 업로드 컴포넌트를 확장변수 갯수만큼 추가시켜야겠죠 ㅋ
한번 만들어 보는 것도 재밌을거 같네요^^;
-
misol
2012.01.31 20:39
코드의 replaceButtonID 부분에 주목하면서 읽어주세요 ㅎㅎ
-
Garon
2012.02.01 19:17
한끝차이를 강조해 주시는 센스! -
추~운
2012.05.07 16:05
제가 찾던 바로 그 기능입니다.
무지 감사드립니다.
-
xelover
2012.05.08 20:34
사용자는 버튼의 모양이나 위치변경이외에도
이미지 프리뷰창,파일리스트창 등도 같이 변경하고 싶어하죠. 없애거나 위치를 바꾸거나...
고치다 보면서 느낀건데 게시판에 사용되는 파일 업로드의 현재의 모습이 군더더기 없는 완전한 형태임을 느낌니다.
-
many
2012.06.23 12:56
위에 똑디님께서 요청한 내용은 어떻게 만들수 가 없을까요?
정말 많은 활용도가 될 것 같은데요
-
조~사
2012.06.26 09:53
이외 파일첨부 관련 문의사항 있으시면 언제든지 질문 주시기 바랍니다. 말씀하셔서 염치 불구하고 여쭤봅니다.
제가 2008 r2 버전에 php. mysql을 설치하여 ver xe core1.5.2.5를 설치했는데, 첨부 파일이 25M 크기정도만 첨부가 되서 문의드립니다. 왜? 그럴까요? (php.ini에서 800M까지 허용하고, xe 관리자에서도 800까지는 아니더라도 250M 정도 설정을 줬는데..) 25M는 정상 첨부되고, 30M가는 에러가 납니다. 25M 크기의 파일 8개를 첨부하면 첨부가 됩니다.)
-
종스
2012.06.26 11:16
개인적인 소견입니다만... 표시는 800M 일지라도... 특정 용량에서 업로드가 안된다면...
php.ini 설정이 제대로 안되어 있을것 같습니다...일반적으로 업로드 용량 대비... 메모리 용량, 업로드 시간 등도 함께 올려줘야 하니깐요...
php.ini 파일에서 대략적으로 수정해야 할 부분은 아래와 같습니다^^~ 꼭~ 성공하시길~
;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;; ;max_execution_time = 30 ; Maximum execution time of each script, in seconds max_execution_time = 1500 ; Maximum execution time of each script, in seconds ;max_input_time = 60 ; Maximum amount of time each script may spend parsing request data max_input_time = 120 ; Maximum amount of time each script may spend parsing request data ;max_input_nesting_level = 64 ; Maximum input variable nesting level ;memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) memory_limit = 768M ; Maximum amount of memory a script may consume (128MB)
; Maximum size of POST data that PHP will accept. ;post_max_size = 8M ;post_max_size = 64M post_max_size = 1000M
;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). ;upload_tmp_dir = ; Maximum allowed size for uploaded files. ;upload_max_filesize = 2M upload_max_filesize = 1000M ; Maximum number of files that can be uploaded via a single request max_file_uploads = 20
-
조~사
2012.06.28 16:50
종스님 먼저 답변에 감사를 드립니다.
님께서 올려주신 대로 php.ini을 수정해 주었습니다.
희망을 가지고 수정을 하고 적용을 했는데.. 결과는 똑같군요.ㅠㅠmax_execution_time = 1500, max_input_time = 120, memory_limit = 768M,
post_max_size = 1000M,
file_uploads = On,
upload_max_filesize = 1000M,
max_file_uploads = 20
-
종스
2012.06.29 01:54
한방에 해결이 되셨어야하는데ㅜㅜ
혹시 앞서 제기하신기 30MB 올릴때 에러도 같은메세지 이신가요? 404에러라고 표시되는건 왠지 한글파일명 때문이 아닌지 생각되네요~
한때 저도 첨부파일이 특정용량에서 증발되 버려서 확인해보니 php.ini 세팅이 제대로 안되있었던 경험이 있거든요~또다른 세팅을 확인해 봐야 될 것 같습니다.
팁의 성격을 지니고 있고, 이야기 거리도 될 것 같아서 팁 게시판으로도 글을 복사(이동하지 않고)하였습니다. http://www.xpressengine.com/tip/20473715