Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

procFileUpload()에 자그마한 기능개선 필요 #37

Closed
largeden opened this issue Oct 23, 2013 · 5 comments
Closed

procFileUpload()에 자그마한 기능개선 필요 #37

largeden opened this issue Oct 23, 2013 · 5 comments
Assignees
Milestone

Comments

@largeden
Copy link
Member

업로드를 다루고 있는 지금입니다만, 만들다보니 현재의 SWFUpload 연계 때문에 file 모듈이 구조적으로는 좋지 않더군요.

현재는,
게시판 모듈에서 SWFUpload를 이용해 파일을 올리면 업로드가 완료된 후 다시 한번 더 서버로 요청을 해서 file_srl을 받아오는 구조입니다.

modules/editor/tpl/js/upload.js
reloadFileList() <- 이것이 대부분의 함수에 관련 동작하여 불필요한 서버요청을 하고 있습니다.


우선은 간략하게 아래와 같은 기능을 추가해서 값을 리턴받아 처리하도록 하면 좋을 것 같습니다.

procFileUpload()

    switch(strtolower(Context::get('dataType'))) {
        case 'json' : Context::setRequestMethod('JSON');
        case 'xml' : Context::setRequestMethod('XML');
        break;
    }

데이터타입을 지정하여 처리하도록 합니다.
(파일업로드 시에는 ajax요청시 dataType : json으로 지정하면 포맷이 틀려져 업로드가 안됩니다. 그래서 별도의 변수형태로 던져 값을 받습니다. )

ajax를 dataType:json(contentType:"application/json")으로 보낼경우 예)

stdClass Object
(
[-----------------------------17367453038805774971556180602
Content-Disposition:_form-data;_name] => "PHPSESSID"

0dfd239b56729ce58c04e2240c150ab8
-----------------------------17367453038805774971556180602
Content-Disposition: form-data; name="editor_sequence"

225
-----------------------------17367453038805774971556180602
Content-Disposition: form-data; name="mid"

board
-----------------------------17367453038805774971556180602
Content-Disposition: form-data; name="act"

procFileUpload
-----------------------------17367453038805774971556180602
Content-Disposition: form-data; name="uploadTargetSrl"

225
-----------------------------17367453038805774971556180602
Content-Disposition: form-data; name="Filedata"; filename="nuricms.png"
Content-Type: image/png

?PNG

[mid] => board

)

insertFile()

    $output->add('file_srl', $args->file_srl);
    $output->add('file_size', $args->file_size);
    $output->add('sid', $args->sid);
    $output->add('direct_download', $args->direct_download);
    $output->add('source_filename', $args->source_filename);
    $output->add('upload_target_srl', $upload_target_srl);
    $output->add('uploaded_filename', $args->uploaded_filename);

    $this->add('file_srl', $args->file_srl);

    return $output;

$this->add('file_srl', $args->file_srl); 를 추가하여 json, xml형태로 리턴합니다.

{"message_type":"","file_srl":248,"error":0,"message":"success"}

결과를 받아와 개발자들이 입맛에 맞게 처리합니다.


위 내용 추가로 인한 문제점은 없습니다. 그리고 이 기능이 없으면 없는대로 따로 업로드 처리를 만들어도 되지만...
왠만하면 0.1.0에 넣어보고 싶군요...

의견좀 주세요~

@ghost ghost assigned largeden Oct 23, 2013
@misol
Copy link
Member

misol commented Oct 23, 2013

기존 코드에 영향이 없다면 별 무리는 없을 것 같아요. 저렇게 바꾸면 요청하는 횟수도 감소하겠네요!

@largeden
Copy link
Member Author

놀래라 답이 빠르네요;;

@misol
Copy link
Member

misol commented Oct 23, 2013

깃 허브에서 일어나는 일들이 이메일로 날아와서 푸시 알림을 받고 있지요 @.@
목이 아파서 쉬고 있기도 했고...

@misol
Copy link
Member

misol commented Oct 23, 2013

#18 도 같이 가져가주세요 @.@
분석은 거의 다 하신거 같은데...

@largeden
Copy link
Member Author

#38 로 인해 dataType으로 구분하는 기능이 필요없게 되어서 롤백했습니다.

그리고 json, xml로 값을 받아올 수 있도록 출력변수를 선언했습니다.
(아직 활용하진 않지만 나중에 파일모듈, 업로드 개선할때 사용예정)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants