2009-07-23 2 views
2

내가 parse_on_demand을 사용하려고했습니다 그러나 http://search.cpan.org/~flora/Catalyst-Runtime-5.80007/lib/Catalyst.pm#ON-DEMAND_PARSERContent-Length 또는 MIME-Type을 기반으로 Catalyst 업로드를 중단하려면 어떻게해야합니까? 같이

, 내가 업로드를 막을 수없는 것.

sub upload :Local { 
    my ($self, $c) = @_; 
    die; 

    # What I'd like to do is this: 
    # if ($c->req->header('Content-Length') > $some_limit) { 
    # die "Upload too large"; 
    # } 
    # ... check filename extension and mime-type... 
} 

이 업로드에 접근하는 올바른 방법이다 : 나는 단순히 즉시 사망 조치를 작성하여이를 테스트하고 있습니다, 그러나 브라우저는 지금까지 내 행동에 도달하기 전에 내가 선택한 매우 큰 파일을 업로드 할 것 확인?

+0

대신'auto'를 수정해야한다고 생각합니다. –

답변

2

Catalyst는 작업을 보내기 전에 업로드를 처리합니다. 요청 처리 프로세스의 초기 단계에서 가로 챌 필요가 있습니다. 이는 플러그인을 의미합니다.

나는 Catalyst의 업로드에 대한 전문가가 아니지만, 이미이 작업을 수행하는 뭔가가있을 수 있으므로 cpan에서 검색 할만한 가치가 있습니다.하지만 그렇지 않다면 Upload Progress 플러그인이 어떻게 수행하는지 살펴 보겠습니다. 그것은 현재 업로드에 대한 상태를 얻습니다. 비슷한 방법으로 업로드를 종료 할 수 있어야합니다.

JayK

1

또한 HTML :: FormHandler ::이 검증 기본적으로 제공 이내에 모두 이러한 경우를 처리 모델 :: DBIC 봐.