Zend / PHP: file upload / download problem to / from MySQL BLOB field

I am loading the file (pdf at the moment) as follows: (It loads the contents of the file into the mysql blob field)

$organizationModel = new Model_Organization_Object( organizationId );
$myFile = file_get_contents( '../path/to/my/file/filename.ext' );
$organizationModel->setOrganizationProfile( $myFile );
$organizationModel->save();

Now I want to get this file from the database and download it. I do this in the controller action: (I am an aspect pdf file here, so it is hard-coded below, but in the future I want to load any file from the blob field)

$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;

Now in the view file I do this:

echo $this->organizationProfile; 

But above, the download process prints (echo) the contents of the file in firbug and does not download the file in orignal format. My echo output in firebug is as follows:

%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
]

response headers in 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() , / / .

+3
2

, , , AJAX .

AJAX ( - JS) . , , ( ) - .

. iframe , script. JS , .

:

http://www.filamentgroup.com/lab/jquery_plugin_for_requesting_ajax_like_file_downloads/

Mybe .

+1

, Content-type application/pdf not application/octet-stream. pdf, .

0

Source: https://habr.com/ru/post/1741233/


All Articles