使用Zend_File_Transfer上传

时间:2009-06-22 12:28:50

标签: php zend-framework upload

我一直在使用Zend Framework来开发我的网站,现在我正在设计上传界面。 我需要允许用户上传1-5张图片。 我需要将这些图像作为BLOB对象发送到数据库。 我目前的代码是这样的:

$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类型和扩展名可以很容易伪造。我所做的事情似乎很愚蠢。还有其他想法吗?

其次,我从哪里开始?我知道Zend有setDestination方法,但我将它移动到数据库,而不是文件。

感谢。

1 个答案:

答案 0 :(得分:2)

  1. 您可以使用getimagesize() 检查文件是否真实 图片。 (不要被它的名字所愚弄 - 它可以提供更多信息而不仅仅是大小)
  2. 使用file_get_contents()读入图像文件的内容以存储在数据库中。