2011-01-28 3 views
0


SWFUpload 또는 플래시/아약스 업 로더와 함께 CakePHP Media Plugin을 사용한 적이 있습니까? 어디서나이 문서 나 코드 샘플을 찾을 수 없습니다.CakePHP 미디어 플러그인 및 SWFUpload

모든 아이디어/제안을 환영합니다. 내가 CakePHP는 1.3, Uploadify (http://www.uploadify.com/)와 마일즈 존슨의 업 로더 플러그인 (HTTP를 사용하여 이러한 라인을 따라 뭔가를 달성하기 위해 관리했습니다

답변

0

감사합니다,
m^E : //www.milesj.me/resources/script/uploader-plugin).

모든 것이 제대로 작동하려면 약간의 시간을 들여야합니다. 필요한 모든 작업을 수행하기 위해 관련된 각 문서의 설명서를 읽으려고합니다. 그러나 이것이 내가 관리하는 방법입니다 그것 :

보기 : 필요한 자바 스크립트 libs : jQuery, SWFObject 및 Uploadify를 포함하십시오. 업로드 스크립트가 플래시 업 로더로 대체 될 <input> 요소를 삽입하십시오. 그런 다음 Uploadify 설정 (Uploadify 문서의 세부 정보)을 지정하는 jQuery 코드를 삽입하십시오. Uploadify가 게시 할 URL을 설정할 때 세션 ID를 인수 중 하나로 포함하십시오. 필자는 예제에서 첫 번째 인수로 전달했습니다 (Controller beforeFilter를 참조하여 수행 된 작업을 확인하십시오).

컨트롤러에서 : 업 로더 플러그인의 업 로더 구성 요소를 포함하십시오. 으로, beforeFilter이 같은 추가 :

function beforeFilter() { 
    if ($this->action == 'upload') { 
     $this->Session->id($this->params['pass'][0]); 
     $this->Session->start(); 
    } 
    parent::beforeFilter(); 
} 

는 업로드를 할 작업을 만듭니다. 내 모습은 다음과 같습니다.

function upload(){ 
    Configure::write('debug', 0); 
    $this->autoRender = false; 
     if (isset($this->params['form']['Filedata'])) { 
    $this->data['Upload'] = $this->params['form']; 
    $data = $this->Uploader->upload('Filedata'); 
    } 
} 

그게 핵심입니다.

그러나 몇 가지 문제점이 있습니다.

Uploadify의 URL에 대한 게시물이 다른 사용자 에이전트에서 온 것으로 볼 수 있으며 이로 인해 오류가 발생할 수 있으므로 세션 ID를 컨트롤러에 전달하고 해당 ID로 새 세션을 시작하십시오. 위와 같이 브라우저의 세션 ID를 업로드 작업에 전달하고 beforeFilter에서 해당 ID로 새 세션을 시작하면이 문제를 해결할 수 있습니다.

또한 업 로더 구성 요소에는 mimetype 유효성 검사 기능이 내장되어 있습니다. 그러나 Uploadify가 제공하는 Flash 업 로더는 원본 파일의 mimetype과 관계없이 일종의 "file-upload-by-flash"MIME 형식으로 모든 파일을 보냅니다. 업 로더 플러그인 코드에서 직접 유효성 검사를 비활성화하여이 문제를 해결했습니다. 즉, 업로드 된 파일의 MIME 형식을 유효하게하려면 다른 위치에 파일을 추가해야합니다.

죄송합니다. 너무 애매합니다. 그러나 얼마 전이 작업을 수행 했으므로 모든 세부 정보를 기억하지 못합니다. 그러나 그것이 올바른 방향으로 당신을 가리키는 데 도움이되기를 바랍니다.