2013-08-08 4 views
0

Kohana 프레임 워크로 앱을 제작하고 있습니다. 이미지 업로드가 이에 포함됩니다. 최대 게시 파일 크기 (20M)를 초과하는 파일을 업로드하려고 할 때 유효성 검사 메시지 또는 Kohana의 오류 처리기 대신 PHP 경고 메시지가 표시됩니다.Kohana 앱에서 PHP 경고 메시지 표시

경고 :

$validate = Validation::factory($files); 
$validate 
    ->rule('photo', 'Upload::not_empty', array($files['photo'])) 
    ->rule('photo', 'Upload::valid') 
    ->rule('photo', 'Upload::size', array($files['photo'], '10M')) 
    ->rule('photo', 'Upload::type', array($files['photo'], array('jpg', 'png', 'gif'))); 

if ($validate->check()) 
{ 
    Upload::save($files['photo'], 'test.jpg', 'uploads'); 
} 

이 경고가 훨씬 던져 : 26,871,468 바이트 POST의 콘텐츠 길이 여기

라인 0에 알 수없는에서 20,971,520 바이트의 한계 내 검증 코드 초과 내 MVC에서 액세스 할 수있는 것보다 높은 수준. 이 오류를 가로채는 방법은 무엇입니까? (앱이 온라인 상태 일 때 분명히 PHP 경고가 사용자에게 표시되지 않지만 경고가 필요합니다.)

+0

시도해보십시오. if ($ _SERVER [ 'CONTENT_LENGTH'] <20971520) {// 표시 오류} ' –

+0

@AmalMurali 당신이 맞다고 생각하십니까? :) 나는 그것을 시도하고 작동하지만 PHP 경고가 여전히 표시되고있다. – Gavin

+0

http://stackoverflow.com/questions/9315461/how-can-i-catch-this-error-post-content-length – AmazingDreams

답변

0

나는 무엇인가를 시도해 본 것 같습니다. 그들을 구분하고 싶을 수도 있습니다 :

$validate 
->rule('photo', 'Upload::not_empty', array($files['photo']); 
$validate->rule('photo', 'Upload::valid'); 
$validate->rule('photo', 'Upload::size', array($files['photo'], '10M'); 
$validate->rule('photo', 'Upload::type', array($files['photo'], array('jpg', 'png', 'gif'); 

모든 유효성 검사를 무시한 것처럼 보이기 때문에 확실하지 않을 수 있습니다.

+0

불행히도 그것은 작동하지 않습니다. PHP 경고가 컨트롤러에 도착하기 전에 던져지고 있습니다. – Gavin

1

파일의 유효성을 검사하려면 먼저 서버에로드해야합니다. 그리고 그 파일은 그만큼 크기 때문에 서버에서 오류가 발생합니다.

+0

삭제 해 주셔서 감사합니다. 이 경고를 처리하는 것처럼 들리지만 Kohana의 핵심 코드를 수정해야합니다. 맞습니까? – Gavin

관련 문제