2009-06-22 5 views
0

저는 웹 사이트를 개발하기 위해 Zend Framework를 집중적으로 사용하고 있습니다. 이제는 업로드 인터페이스를 디자인 중입니다. 사용자가 1-5 개의 이미지를 업로드 할 수있게해야합니다. 이러한 이미지를 BLOB 객체로 데이터베이스에 보내야합니다. 현재 코드는 다음과 같습니다 :Zend_File_Transfer를 사용하여 업로드하기

$upload = new Zend_File_Transfer_Adapter_Http(); 
$upload->addValidator('Extension', true, 'jpg,png,gif'); 
$upload->addValidator('ImageSize', true, array(
     'minwidth' => 4)); //i preform this check to make sure that it's a real 
          //image, since IsImage only checks MIME. Good Idea? 
$upload->addValidator('IsImage', false); 
$upload->addValidator('Size', true, array(
     'min' => '5kB' , 
     'max' => '1MB' , 
     'bytestring' => false)); 
if (! $upload->receive()) { 
    $messages = $upload->getMessages(); 
    echo implode("\n", $messages); 

두 가지 질문이 있습니다.

먼저 업로드 파일이 실제로 이미지인지 확인하기위한 빠르고 안전한 방법은 무엇입니까? MIME 유형 및 확장명은 쉽게 위조 될 수 있습니다. 내가 한 것은 어리석은 것처럼 보인다. 다른 아이디어?

둘째, 여기서부터 어디로 진행합니까? 젠드는 setDestination 메서드를 가지고 있지만 파일로 이동하는 것이 아니라 데이터베이스로 이동한다는 것을 알고 있습니다.

감사합니다.

답변

2
  1. 당신은 파일이 진정으로하고 이미지입니다 getimagesize() 확인 에 사용할 수 있습니다. (그것의 이름에 속지 말라 - 그것은 너에게 크기보다 더 많은 정보를 줄 수있다)
  2. file_get_contents()을 사용하여 데이터베이스에 저장하기 위해 이미지 파일의 내용을 읽는다.
+0

ImageSize 유효성 검사기가 아마도 getimagesize()를 호출하기 때문에 :) 나는 카림과 동의하지만 충분히 안전해야합니다. –