DB_Binary Draft
| From: | yavo | Date: | Fri, 16 Mar 2001 23:49:26 +0000 |
| Subject: | DB_Binary Draft | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-34@lists.php.net to get a copy of this message | ||
Here's a DB_Binary class, for storing binary files in a database. It's not
finished but I wanted someone to take a look at it to see if it's following
PEAR coding style etc.
It's structured like this
Binary.php
Binary/
oci8.php
{other extentions to come}
The DB_Binary class implements
// Constructor
DB_Binary($tableName="files", $tableKey="fileid", $tableFile="file",
&$database)
// Connects and returns a new object
connect($database="")
// change properties after instantiation
setup($tableName, $tableKey, $tableFileType="", $tableFilename="",
$tableFileSize="")
// stream, after the file is fetched, you can't stream it to the clent..
Uses header functions
function stream()
The DB_Binary_oci8 class impements
// save, save the file to the db
function save($fileID="", $file, $filetype="", $filename="",
$filesize=""){
// fetch, get the file from the db
function fetch($fileID)
// The reasons behand this class are than while storing files in a databse
// in mysql is a breeze, in other databases (oracle, pgsql) things are not
so
// smooth. I spend a long time in the www.phpbuilder.com forums and a lot of
the questions
// there where how to store file in oracle and get them out. Onother popular
// question was how to execute stored procedures, espesially one returing
// recordsets. This class will support saving files submitted from forms to
// the database, fetching them and/or streaming them to the user, with the
apropriate
// file type if saved in the database. Future extentions would be to include
dynamic resizing
// for images, but I have no idea how to do that. Another idea for extedning
this would be
// to make it get multiple files, but that might lead to performance hits
begin 666 DB_Binary.zip
M4$L#!!0```
(!P]<2KC_H3"Z0``($!`;```0FEN87)Y+T5X=')E;G1I
M;VY!<&DN<F5A9&UE;9!!:\,P#(7O@?R'A^FAA:1L/V"#06'7P78?3B+/8HD=
M;*5=]NL7F5(VV$E(?N_3D]LS[H[W=557;YY 7T)!. 9D'Y=Q0%[F.2:!;(\N
MCF.\</C 1.+CD.L*;9OMF?8[QR,U*"78B1Z,N7:RSK^ZS-_:'38G7BBYF*:"
M'JS8SF9"GJEGQSW<$GH-DB$1NJ/H.@XVK45>ECN2WBOLF>0&@DOQBNV.>/W'
M"P[8B>?</KYKK)/.;!B45"[=9K BB;M%*.^AN1OH90WT(AP4H5*;DEW_P)YN
M/BCOPN+Q26N&4?_V$T8)6I5J?@!02P,$% ```@2CUQ*C7JGKT<! `'@L
M`\``!":6YA<GDO;V-I."YP:'"]56U/XT80_EPD_L,TBAI'YS@!5>H!!W<!
MPC6Z%"B$2O<IVJPG>(NSZUNO8]*#_][9M9TW7CY47 U*\.S.,\_S[,SRX6,2
M)=M;[3;,.L&.^^-=ZTV>=P[L`2Y_OX09ZE0H";\&'?A/S\./8':BDKD6MY$!
MCS=A9V_O-]]^OG>?>S[L=CH=&$;H)'S6*DO^+V;#2*20JDQSA(F($>QK-OX;
MN0&C%G;N!IU=4!,P)<=8<)0I^JO,'FB5&0LPSF088PBY,!$%*9(P?L=N"5TZ
M"%=IT#_IG5_W?& RM%FP#L9F3,1L3!L)U$1DRFWDDG.EX["5BQ!;.8[MZLM/
M!189D^RWVWF>!]2%@433+B6T=T>=W<#<F^ 5F'6P_@3F*H-0A""5`8T<Q8QH
M`J=C?L8E)Y!IA$PZ/>3K$DR-#2-7Q&L:?4AB9 24HD6R54N4#69EP4^E1CI8
MR!$XDS E,QWKDJ683C$4S& \WQ3^0_JLFYE(Z7WXRF9*PW7$HH2E:@8?YA3X
M) Q*%G U#?C\"%Y\*IEO\KR]3 =8[X?UQ8OBXCW@/:DS=HHF)-V>[NGQ_OZQ
MD$S/@<<L3;>WBA_*</.8LQ0BFA@:(:-ND5(T3%AJ?.@WXIC.\HX.5=$)2I.Z
MY@HQY1#3:>H"2$@>9R&.E*2Q;IP>MXMJMO<;!W:#*TL\1L7":$DT7 G#=[L7
M8)))[@2L)WAU8_OYG$WQL&9'.JWY4,2^X+P(B7 1.Z/7(DBA7^HAHR@U=?.[
M+0% XD^43(W.N"&?.(OC8J%N;Y#6T:+V2MF5<JM5UN /+,KCAI"4S="K6R[]
MT\.:I3AQ>>[+S!-<!J635[VEXA_[5I&N\UB-`0[M24O,[3EHD1!_KV0]"L>D
M2OIP<=(?G8X&%\<%(4I-O\64V( ^78)70_H:7D CJ/(6&H.&!XV#A4>N0>A7
M(QDTIRL%)X(+Z@3JB! #Z,.=5'D`74E#'M*M$12I8N*M09-EE8B22W (FSN"
MQJ+TX_,PUNZG. V?E,"3C:_"67>'Y/P+:)O;UK%6++4)3?BK.[CI71?.+4L5
M!_Z,[F(AL)76":XXGM,8HIO?<3$=ML7L0I*9C?K0^^-R^'5T0L?M-:%9LEC?
M5+OJ#6^NSOOGG^&L/^B-3KO#;M$$^U1C9!NKMB"//%*>S6P>_%1$0H'>HI5X
MIHL>3)A.L;*4N\:K7_\YJ#:2!S_;S4L'2%]/:Z4W19<7@/6EB!$XR0['<SL/
MG@7QH;9D:D?.S8(/K1THVOW8&0#-2H6M3C!XCSPSA)&:J?'=7/3.NC>#87-!
M:XW58Y7L"K2.[.Q:7L5QKB5=W"W(VOM1F%4K*A,TFDQ+C^Z3BR]5K*B!<8K/
M,7" 6L7QF"[EIY";E\L$#8\VFXT[8#:?]M$#<L\E_KQ:'OK7U!+P04````
M" !X6' JLC7H47H``"A``'
``$)I;F%R>2]%>'1R96YT:6]N07!I+G)E
M861M97Y-CD$*0C$,1/>"=P@?%PI>P3NX\ *U36R@;4J3ZM?3^UM<N!H>F9G,
M+2+@:EB,I8!&Z2F ]EJE&=AV)$E)7EP>D-&B!-WO0-T3CP?BA&>84ES&R[+\
MR-[UCY0_@TY;#J[82%J>Q<&9NSM%T(J>B3U0+W[,4#"9/X;O"U!+P0*```
M`! /W$J``````````````!P`$)I;F%R>2]02P,$%
``@P#UQ*NWV
M(>%J"0`9AL`H`!":6YA<GDN<&APO5AM;QLW$O[L/D/K&"<)%=>N<8!
MU]BU$R=V+D8+-ZA]N"L.!X/:I;2L=\D-R;6J)OGOG1ER=[EZ28,B/7VP)2[Y
MS/LSP_WN>9573Y],I^SQ*/F&OGQ]^$4^7Q/8!_;VS5OV*(R56K&_)T?L3WT^
M_!6:O=+5RLA%[M@H';-OGCW[QP3_?DM_GTW8\='1$;O+!9GP3Z/KZO^EV5TN
M+;.Z-JE@<UD(AC_KV2\B=<SIUIW'R=$QTW/F@HZ%3(6R8A)K]@&><H<`LUIE
MA<C84KH<%F&EXND#7P"Z(@B2],/UJZN;VZL)XRK#4ZP/QA^Y+/@,-@*HR\$I
MBYP.+[4ILL.ES,3A4LSPZ>Y/`Y8[5YU,I\OE,H$L3)1PTV#"]/C^Z#AQO[KD
M$S!]L.LY6^F:93)C2CMF1"KD(ZC)4@CS%B^1@=P(5BNR!_S:@>F9X^ 5^2D;
M)ZPJ! <@*Q )I0:4-<V"P!?!1@@L6PJ6<L5*<"9I';2492DRR9TH5NN&_R5Y
M=E&[7)L3]C-_U(;=YCRON-6/[+L5++R03BB>I+I,TM4YV_5IK/PBGR]O)0'N
M7V?[[8]+[O@,XR:5$V;.L<; >NNTD6K!9E)QLZ)BL%@9G&7A0$+'Z0^R@H'@
M:P5U)7),):JHM.#64E9!U2FVS+&D&N1U2"L("Q;*E7U78+5Q-C-"_ 8E#*L:
M<LZTTBT;:</3`IY5"]@^1HEJX:5AQEM-<+;4<#!AU\Q6/C$+#<*=+-M"#P4W
MJV61"8,11@_4I?4U`0=<4S#O:F$=<(TE;%0(CM/?7"\QV]&XAJ1 9=*08!8"
MBT>43-=0Q3\J;TVEJ[K@AM :;+;DMH$3OXJT=MYGP%65T:G(:B/LA FPQTI>
M%%#-"MWO:G(K84&Y:Y-9X6SBV=-'8BF+`IBSJK0!!_''+@Q IZ5T#F3,C;<?
MS <%&CM;OT_87+@47>W-`=NFE"X0_[)=A9-XJ+;"3!J&!3^ _I7!@O:XY":W
MJL!7<U0'I(>0M#G&7M=@EP!'0/61YX%VZB*#-$,A4J5%G<'^E0+I*=AMY6^@
MA8<'O60)C [>FM4.4B '&9 <#"B+-R[.-+6$A%V$F-!#/(LR,^5MDIU<[Q(-
M;/4@D!(QLF5=. G\Y[WIQ5&C*:FAC%F>*2"@//<@5%EDOGL^CP$.G%UZ,1
M[VIIQ+W&'</+EYB7P]/U];=7%S\U3PCB-B?=> CS+/@K`X<^?_Z<78)7%D#?
MUM8"3V1B+I48#2Y?WK^\OKGXZ>?FW^OK'ZX&T._'I]LVW5W]Y\YO80S&@3%)
M]Q)QDR>*]T^?,#8]."!.:,((#02;==(H.L-&=/DR++.#*1YZY(;MWV>STZT(
MF55)?Z-5O9VI5@K L( @@I K<PG![$._@CVDM3]VP>8%7T#FK3#(4,<4_Z48
MFA8./!A!2/NJ68Y@4#JDGVA(PE$#];2 OWL42B6X@)S3?7/HT V@](R":BGQ
M[(-8]=$WCGXO5KV3**U QDUS+S/711:K@Y[=A'D-QUJ<"V"P"CW*"\ 3."W%
MK8&TP>H-FJ'(B:\5VX6Y1*:E;;$PW'L'BSME;8J*74S,L8[7\]X?XP%3?!KO
M%C;TP@R&(0^L!Y8\B48[Y&@^=T@B;FB!*=.\GT"$BQWW=#<JZ<*=,Q)8!/L<
MD"-7J[$/XZQM!EY0R\;K4BY:!)*%GR"3?A[ O*] XSH%-/(-RJ9J3OR&L.U%
MQ0TOV7Z;H&CGMI@T:=_/.)C:8S]-6( %HW0)+0<,`:;AP)\>;$AE,J3N#WP%
M`^ V/2#;8S5VE<G$B_&-+183,$F8S&)IR9JXEH"\N&F@+#_>P$R#7"N)-XC1
M@)4:Q;0)4)PA89^<M(079%# YK7RI-52Z*AS]=F O &4W)KMEV36KF'%^D58
M^ENK[_B]C_H^:GIXWO$+.XMB>;IE$_KVK!.X;0O*;/>TE,$P#LJ-!K>.&S<8
MAT4Y'VUH1:O2WGM_1,]QPUXC*YNAD.89P.U!K[M@L!RBX&-FZ;[0L3_<Y& .
M@!;0@T+F)IV;A</SZ-!IMS<B>=@/%=)8Q]C'YHLHK'CO]8F;Z\37?:6ME>$2
M%60P*F\Y[TTWC'),$%]8YN$X=3KHVK'R5JT[8JNN<U[8#67I'_W9*'\5+M"Q
M3A,&G)4^6-25C.D:X5P:ZP+!4X&#.!W0"LVS]1FOF3G#]-=54B52F-6ZD6X[
MX:Q7'C>&KYKZXPM.H^*6*D1O:?P2\-:&$+:M^(*172*>#09-KD)0;G2<8 N\
M2).7T$EX7Z6Y$B3/VHS_:GO*=]E'B1[JY8TH"CWP\]1>;]?A.8QYU#R_.F,#
MG<IO2:T]YN=]-6)*+(E>[J^,T68T^%'AA0`V8DJEM3'@8U@)0S]$<3!&07L?
M492?GFFJ'.&X.?4,-!TF6U1(AC1S,CH>BV^9ZQ[EMMJW)#/9X)?))IU,HLID
M7D5P/,[6[2UA:Q7VO&K5^/WG'(PJP__8J _\'+!;N$"QNO(]IJE5?Z7"JV8A
M'T*C460F?<4>!#VY0XGP=O;2K2/DKH.?V?QV'7\=1J]N/HK NBO9YE G;009
M#7:!]1ZDRF .*C'/H"1]:> HW;L;^C'XC[V#6GJ/;-42![KMXW8$N#$Q]B>H
M24,=81#Y/*5N:6S\\TK%8V<XW5>KV]OG*+C-UU4T'$1#P60MM,!>DS4_KBVA
M%1''?:DI`2KO+5U]\86$A8LO] $3"BR4%XM\\6]Z'R%4UH6HMN@1N)W#E1G'
MVV!]$IVZ[B)*F8KO2X"/C!3X!L'6:2KLO,87(Y2V"V!NF#M]%N*%';;3K*N!
M'%,7`;?)G[17*)]#;8!0U49#:*#8P XS::'A2XJ1U]K72P2\U 8Z*N'AI'U]
M12\(Y+#T;ZIR?,/!9QK6%#!.RJFF$$0]H,*9%E8-(TW7$H,L&S6QC BQN6UT
M/6B?/-:-0?V;PG\'^'CPOW:&V%=-+FS?CH_C[93<N[?CXV@[]4F4V+!V>#U
M8<,7/# B8"L/]X<1KZI"IAR-GFH82=R8)B%OT0!W3ZL"YH+!YL!&HE!;/V &
MLP;_4O@MPXK8<N@-17,T:"*-DD[8(/$ZM_OI!:B_Q5&;M8)>]CCHZI1H,Z.7
M%E\LY!QYTL6I-0FYH;%M^]R(8.':!RE55/3D)J3&+NVB/#PA`;[L$V_V:5MW
M?NC82)%@3C ^#+BM)@NAA,&A3N"8@4%9<H/OQN)C5.0?<?N5(B9<>SF$CY^?
M/WWR.U!+0(4!0```(!P]<2KC_H3"Z0``($!`;````````$(
"V
M@0```!":6YA<GDO17AT<F5N=&EO;D%P:2YR96%D;6502P$"% 4````" !*
M/7$J->J>O1P$``>"P#P```````!"
MH$B0``0FEN87)Y+V]C:3@N
M<&AP4$L!A0%
```@>%AP*K(UZ%%Z```H0`!P````````0@`+:!
M:P4`$)I;F%R>2]%>'1R96YT:6]N07!I+G)E861M97Y02P$"% *``````!
M/W$J```````````````!P`````````! _T$?!@`0FEN87)Y+U!+0(4
M!0``(,
]<2KM]B'A:@D`&8;`*````````$(
"V@40&``!":6YA
<<GDN<&AP4$L%!@````%4/0$`-8/```````
`
end