我上传的文件(现在是pdf)是这样的:(在MySQL的blob字段上传文件的内容)
$organizationModel = new Model_Organization_Object( organizationId );
$myFile = file_get_contents( '../path/to/my/file/filename.ext' );
$organizationModel->setOrganizationProfile( $myFile );
$organizationModel->save();
现在我想从数据库中获取该文件并下载。我在控制器的操作中这样做:(我在这里对PDF文件进行了划分,因此在下面对其进行了硬编码。但将来我想从blob字段下载任何文件)
$organizationModel = new Model_Organization_Object( $organizationId );
$content = $organizationModel->getOrganizationProfile();
header('Content-Type: application/octet-stream');
header("Content-Length: " . strlen($content) );
header('Content-Disposition: attachment; filename=orgProfile.pdf');
$this->view->organizationProfile = $content;
现在在视图文件中,我正在执行以下操作:
echo $this->organizationProfile;
但上述下载过程打印(echo)文件的内容以firbug格式,不下载原始格式的文件。Firebug中的回声输出如下:
%PDF-1.3
%����
84 0 obj
<<
/Linearized 1
/O 86
/H [ 541 212 ]
/L 958398
/E 11238
/N 27
/T 956600
>>
endobj
xref
84 7
0000000016 00000 n
0000000486 00000 n
0000000753 00000 n
0000000982 00000 n
0000001102 00000 n
0000000541 00000 n
0000000732 00000 n
trailer
<<
/Size 91
/Info 83 0 R
/Root 85 0 R
/Prev 956590
/ID[<0a8d7035bf08791da591e8cae39b8c49><0a8d7035bf08791da591e8cae39b8c49>]
>>
startxref
0
%%EOF
85 0 obj
<<
/Type /Catalog
/Pages 82 0 R
>>
endobj
89 0 obj
<< /S 151 /Filter /FlateDecode /Length 90 0 R >>
stream
H�b```f``�e`b`�f`@\0�.����\\I~aV$�XÆ�dǪ����bA�Az�lv1o#�{-����1+�ʪG�����N`�b�
>�-��
\0\0D40
endstream
endobj
90 0 obj
106
endobj
86 0 obj
<<
/Type /Page
/Contents 87 0 R
/Parent 79 0 R
/Resources << /XObject << /img0 88 0 R >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >>
/MediaBox [ 0 0 612 792 ]
/CropBox [ 0 0 612 792 ]
/Rotate 0
>>
endobj�@.\0���
endstream
endobj
88 0 obj
<< /Filter /FlateDecode \0\0\0\0\0\0\0\0\0\\
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\
\0\0\0\0\0\0\0\0\0\0\\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\
\0\0\0\0\0\0\0\0|n�FT*,�
��
�j#Q��uT~r:}\\�_Ø�ҵ��v��Ï8Q�&� ���T�S�I\"�(>Y�ܾ����}H��aj�3��u�h�T�X�Z�-~��c\'P�^��d�×�ß?����]_�ڿ�z��O]�q�����7å¯ï¿½|�mN%�����ÌT�����o�ß�sUzT���m�v8ͯq�
��e]�wS���C~Ta���.��[%!������2x]n~�7�Ϫ����6.����K��;c
}����r�)V��
u���*�7�$c\\���m�~���r��)U{�λ�廳˺��Ô�R��
��D1L_����WUog�>��/������ߦ��~�%���M���}\'�� ;���y��K`�����O�,�߫����<�,0���;3 #��m�v���aZ=�N�u�J`��dwnm;��.Ѣ�k�n�K1-M�7����H&��ʨ���s�C?��
�}Z�1����c�(0�q�_1��7�%���G7U/��h9I������S�Q��4nc�Lq��H6��;�êºc(/O��2�٫�-�*_����%�IØ/?�I�o����ô�k��<����q��\'��]v�\"��+�Ëݯ�,��É�qxgk�\\\\�6���7��Y���.G��ҽY��8��.��*���M_��J�hu1����z��W�o_��F�/���s�:�Y~��>0�g\\E�l�K5e���&L�/����k$����{Úº:\\>�̥Fs?-��l�>c�亪o���Î�9�V+�2;��}q�4
�zS�|u�A`dK���n~�sÎ��K�hiY�j��#p���S�M\\���0P2ä¶\\*�m+?L5Er����[W�>9|�Ì�iY�u�j�M�_���n&��7O�f��s��z`.`�,W��#�l��n���s�Õ\'�����=��&#�z�M7_����s���x��y�
��u�p�G���0ͨe�G���۸8]{�ä·N�1}��}~Q�[)�XF��_��*? p7iQ����M�(�l���������×��f��6����*��Ų;@~\\k�i��w_��*�#�Õ�^�j�\\�L��/�}�Y�[��V��t~�w�n��a���m�O�(.�n;��ji:��W�ZnQ[9�n=�^��sE9��;�.��u3\"Ú��<�Ļ��y8�<H���g��u��\\�q��Ȥ71p�U��}×��f`�Y��m3b*C�t{�SX��7m<��6��8K��[Qs��&_��(M��:�Z���W��Õ��Wå¯
��4d��4�AÚ�ɪ�lw�e�d�>�
�pCV��h�ÅS�Z�T��4�NÓ´,�� �8=-�%ß��4�p�a��~��Rë¥Lè�=J��j}��ʺ��,�(�x����
�]��l�)L��� I8eG#r�dC��;�͹/C���l���rm�ɽ��Í��e�6�M��fP�4�r��)�!�\\sڹ�?{��!cN��h�Ö>�� ��o>��m�dO=&<ɻ�P��xÎ=�ÍCC?�M��W[Ï�v<���S14�����\\C�Z
��g��ݡq:�Ç�C�k�vc�K�;��\"YÍt�r]��G�z����w���rӹ����ަ0������e�:��/f�*^�W�Q8WsN��9}*Û¥|��~x)�N�=6J�l����M�b��Ƿ���M45�C�k]��r�uß�����r
]
Firebug中的响应头:
Date Thu, 15 Apr 2010 06:21:03 GMT
Server Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.2 with Suhosin-Patch
X-Powered-By PHP/5.2.6-3ubuntu4.2
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma no-cache
Content-Length 65535
Content-Disposition attachment; filename=evidence.pdf
Keep-Alive timeout=15, max=71
Connection Keep-Alive
Content-Type application/octet-stream
有人能帮我下载文件吗?或者我在上传过程中出了什么问题。setOrganizationProfile()和getOrganizationProfile()函数由我们的团队创建,在存储/获取数据库中的数据时工作正常。
谢谢