2011-11-07 2 views
2

프런트 엔드에 Jumploader 애플릿이있는 파일을 업로드하려면 Catalyst Request Upload를 사용하고 있습니다. 10k 이하의 파일은 모두 정상입니다. 그러나 파일이 커지면 마지막으로 업로드 한 "청크"만 가져옵니다. Data::Dumper을 사용하면 업로드되는 "10k 비트"를 볼 수 있으며 각 조각은 임의의 임시 디렉토리에 있습니다. 내 질문은 어떻게 전체 파일을 업로드하고 그것을 분해하지?Catalyst 요청 업로드 - 파일 자르기

if (my $upload = $c->request->upload('file')) { 
    my $filename = $upload->filename; 
    $target = "$file_path/$campaign/$filename"; 
    unless ($upload->link_to($target) || $upload->copy_to($target)) { 
     die("Failed to copy '$filename' to '$target': $!"); 
    } 
} 

감사합니다.

+0

업로드 내용을 어떻게 읽는지 설명해 주시겠습니까? – yko

답변

1

기본적으로 Catalyst에서 업로드 (Catalyst :: Request :: Upload로 수행)는 HTTP에서 전송 된 콘텐츠를 읽고 tmp 파일에 저장합니다.

$c->request->upload('file') 

어쩌면 Jumploader가 둘 이상의 HTTP 요청이 포함 된 더 큰 파일을 보냈습니다. 그래서 무슨 일이 일어나고 있는지 디버그해야합니다.

"-d"를 사용하여 서버를 시작하거나 CATALYST_DEBUG=1 env를 내보낼 수 있습니다. 그런 다음 하나의 커다란 파일을 보내고 촉매제에 대한 요청 횟수를 확인하십시오.

두 개 이상인 경우 Jumploader는 모든 항목을 함께 붙일 수 있도록 "업로드 파일 ID"와 같은 요청과 함께 보낼 수 있습니다.