我一直在使用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
方法,但我将它移动到数据库,而不是文件。
感谢。
答案 0 :(得分:2)
getimagesize()
检查文件是否真实
图片。 (不要被它的名字所愚弄 - 它可以提供更多信息而不仅仅是大小)file_get_contents()
读入图像文件的内容以存储在数据库中。