All answers are below your questions... Thank you for taking the time to parse through my code and try to understand what I am doing, I really appreciate it, this is the first time I have tried something like this and have been hung up on it for a couple days now... Scott
-----Original Message----- From: Chris Shiflett [mailto:[EMAIL PROTECTED] Sent: Thursday, September 11, 2003 8:21 PM To: Raditha Dissanayake; Scott Dotson; [EMAIL PROTECTED] Subject: Re: [PHP] getting download resume to work Can you help explain this code? It looks like you're on the right track but have a few flaws (at first glance). > <?php > session_cache_limiter('public'); > session_start(); Is there a reason to be using sessions here? >>>>>>>ANS: not really as of yet, but, there will be as I will be restricting downloads to authenticated users... > set_time_limit(0); > $file=$_REQUEST['file']; > $extstart=strpos($file, "."); What does $extstart contain now? >>>>>>>ANS: just the first part of the name, before the extension, (for no reason) > $ext=substr($file, $extstart+1); So $ext is now a piece of the file. Why? >>>>>>>ANS: this is done so that I can set the ==header("Content-Type: application/".$ext);== > $dir="d:\\downloadable_courses"; > $size=filesize($dir."\\".$file); > header("Accept-Ranges: bytes"); So $size is now the size of the entire file (not the piece). >>>>>>>ANS: correct > if(isset($_ENV['HTTP_RANGE'])) { > list($a, $range)=explode("=",$_ENV['HTTP_RANGE']); So $a is now bytes, and $range is something like 123-456 >>>>>>>ANS: partly correct, what I receive is =="Range: bytes=14232-"== it has no last number. > str_replace($range, "-", $range); This makes no sense. The range requested is bytes 123 through 456, and you're converting this to 123456. Why? >>>>>>>ANS: when I left it on what it would send to the browser would be =="header("Content-Range: 123--456/457");"== (it would tack on an extra dash symbol (-) and the browser did not understand it) > $size2=$size-1; > header("Content-Range: $range$size2/$size"); > $new_length=$size2-$range; This will definitely not work, based on my comments above. >>>>>>>ANS: it appears to work enough that FlashGet will try to recover/resume and it completes, but, the byte count is always off by around 1 or so bytes and I cannot figure out why... If someone sends this header: Range: bytes=0-1023 and your resource is 2048 bytes in size, your response should include this header: Content-Range: bytes 0-1023/2048 Work on generating the correct string before you bother actually using them as headers and trying for the full solution. >>>>>>>ANS: I have set it to log to a text file previously and it is always 1 byte different. I am at a total loss as to where it is happening, I will attach the the log files that I have been pouring over as well the actual script to you... Hope that helps. Chris ===== Become a better Web developer with the HTTP Developer's Handbook http://httphandbook.org/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php begin 666 script.txt M/#]P:' -"G-E<W-I;VY?8V%C:&5?;&EM:71E<[EMAIL PROTECTED]<'5B;&EC)RD[#0IS97-S M:6]N7W-T87)T*"D[#0IS971?=&EM95]L:6UI="@P*3L-"FEN8VQU9&5?;VYC [EMAIL PROTECTED];F,O;7E687)S+G!H<"(I.PT*:6YC;'5D95]O;F-E*"(N+VEN8R]S M8W)I<'1?8V]N9FEG+G!H<"(I.PT*:68H(6ES<V5T*"1?4D5154535%LG9FEL M92==*2D@>PT*"6AE861E<[EMAIL PROTECTED]&]C871I;VXZ("XO:[EMAIL PROTECTED]<&AP(BD[#0H) M97AI=#L-"GT-"B1F:6QE/21?4D5154535%LG9FEL92==.PT*)&5X='-T87)T M/7-T<G!O<[EMAIL PROTECTED]@(BXB*3L-"B1E>'0]<W5B<W1R*"1F:6QE+" D97AT M<W1A<G0K,2D[#0HD9&ER/2)D.EQ<9&]W;FQO861A8FQE7V-O=7)S97,B.PT* M)'-I>F4]9FEL97-I>F4H)&1I<BXB7%PB+B1F:6QE*3L-"B\O:&5A9&5R*")0 M<F%G;6$Z("(I.PT*+R]H96%D97(H(D-A8VAE+4-O;G1R;VPZ("(I.PT*:&5A M9&5R*")!8V-E<'0M4F%N9V5S.B!B>71E<R(I.PT*)&9I;&5?=W(]9F]P96XH M(G1E<W0N='AT(BP@(F$K(BD[#0II9BAI<W-E="@D7T5.5ELG2%144%]204Y' M12==*2D@>PT*"6QI<W0H)&$L("1R86YG92D]97AP;&[EMAIL PROTECTED]/2(L)%]%3E9; M)TA45%!?4D%.1T4G72D[#0H)<W1R7W)E<&QA8V4H)')A;F=E+" B+2(L("1R M86YG92D[#0H))'-I>F4R/21S:7IE+3$[#0H):&5A9&5R*")#;VYT96YT+5)A M;F=E.B D<F%N9V4D<VEZ93(O)'-I>F4B*3L-"@DD;F5W7VQE;F=T:#TD<VEZ M93(M)')A;F=E.PT*"6AE861E<[EMAIL PROTECTED]&5N="U,96YG=&@Z("1N97=?;&5N M9W1H(BD[#0H)9G!U=',H)&9I;&5?=W(L("(]/3T]/3T]/3T]/3T]/3T]1E)/ M32!215-5344]/3T]/3T]/3T]/3T]/3T]/5QR7&XB*3L-"@EF<'5T<[EMAIL PROTECTED] M95]W<BP@(DA45%!?4D%.1T4@/2 D<F%N9V5<<EQN(BD[#0H)9G!U=',H)&9I M;&5?=W(L(")#3TY414Y4+5)!3D=%(#T@)')A;F=E)'-I>F4R+R1S:7IE7')< M;B(I.PT*"69P=71S*"1F:6QE7W=R+" B0T].5$5.5"U,14Y'5$@@/2 D;F5W M7VQE;F=T:%QR7&Y<<EQN(BD[#0I](&5L<V4@>PT*"21S:7IE,CTD<VEZ92TQ M.PT*"69P=71S*"1F:6QE7W=R+" [EMAIL PROTECTED]) M5$E!3"HJ*BHJ*BHJ*BHJ*BHJ*BI<<EQN(BD[#0H)9G!U=',H)&9I;&5?=W(L M(")#3TY414Y4+5)!3D=%(#T@,"TD<VEZ93(O)'-I>F5<<EQN(BD[#0H)9G!U M=',H)&9I;&5?=W(L(")#3TY414Y4+4Q%3D=42" ]("1S:7IE7')<;EQR7&XB M*3L-"@EH96%D97(H(D-O;G1E;G0M4F%N9V4Z(&)Y=&5S(# M)'-I>F4R+R1S M:7IE(BD["0T*"6AE861E<[EMAIL PROTECTED]&5N="U,96YG=&@Z("(N)'-I>F4R*3L- M"GT-"FAE861E<[EMAIL PROTECTED]&5N="U4>7!E.B!A<'!L:6-A=&EO;B\B+B1E>'0I M.PT*:&5A9&5R*")#;VYT96YT+41I<W!O<VET:6]N.B!I;FQI;F4[(&9I;&5N M86UE/21F:6QE(BD[#0IF8VQO<V4H)&9I;&5?=W(I.PT*)&9P/69O<&5N*"1D M:7(N(EQ<(BXD9FEL92P@(G)B(BD[#0IF<&%S<W1H<G4H)&9P*3L-"F5X:70[ M#0HO+VAE861E<[EMAIL PROTECTED]&5N="U4>7!E.B B("[EMAIL PROTECTED]<&4H)'!A=&@I M*3L-"@T*+RHJ(%-E;[EMAIL PROTECTED]&AE(&%P<')O<')I871E($A434P@:&5A9&5R<R J [EMAIL PROTECTED]@1&[EMAIL PROTECTED]&AI<R!I;G-T96%D(&]F('1H92!F<&%S<W1H<[EMAIL PROTECTED] M( T*+RHD9FEL97-I>F4@/2!S:7IE*"1F:6QE;F%M92D[( T*)&9P([EMAIL PROTECTED] M96XH)R1F:6QE;F%M92<L)W([EMAIL PROTECTED]:&EL92 H)&)Y=&5?8V]U;G0@/" D M<F5S=6UE7V)Y=&5C;W5N="[EMAIL PROTECTED]( T*(" @(&9R96%D*"1F<"[EMAIL PROTECTED]@ M(" @)&)Y=&5?8V]U;G0@/2 D8GET95]C;W5N=" K(#$[( T*?2 -"G=H:6QE M*"%F96]F*"1F<"DI( T*>R -"B @("!P<FEN="AR96%D*"1F<"[EMAIL PROTECTED],BDI M.R -"B @("!F;'5S:"@I.R -"[EMAIL PROTECTED] M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\- M"D%C8V5P="U286YG97,Z(&)Y=&5S#0I#;VYT96YT+5)A;F=E.B!B>71E<R P M+30Y.3DY+S4P,# P#0I#;VYT96YT+4QE;F=T:[EMAIL PROTECTED] P,# -"D-O;G1E;G0M M5'[EMAIL PROTECTED];&EC871I;VXO>"UT87(-"D-O;G1E;G0M1&ES<&]S:71I;VXZ M(&EN;&[EMAIL PROTECTED];64];6%E<RYT87(-"@[EMAIL PROTECTED]@82!R97-U M;64@<F5Q=65S="!A="P@<V%Y+" Q:[EMAIL PROTECTED];"!S96YD(&]U="!T:&4@<V%M M92!T:&[EMAIL PROTECTED]: T*=&AE(')A;F=E(&%N9"!L96YG=&@@9&EF9F5R96YT [EMAIL PROTECTED];VYT96YT+5)A;F=E.B!B>71E<R Q,# P+30Y.3DY+S4P,# P#0I# <;VYT96YT+4QE;F=T:[EMAIL PROTECTED],# -"BHO#0H_/@`` ` end begin 666 logs.txt M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O#0I<7%Q<7%Q<7%Q<7%Q<7%Q<7%Q< M3$]'1T5$([EMAIL PROTECTED]($%3($A%041%4E,@4T5.5%Q<7%Q<7%Q<7%Q<7%Q< M7%Q<7%P-"B\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+PT*#0I$3U=.3$]!1"!& M24Q%("[EMAIL PROTECTED]@1DE,12!#3U)255!4#0H-"BHJ*BHJ*BHJ*BHJ M*BHJ*BI&4D]-($E.251)04PJ*BHJ*BHJ*BHJ*BHJ*BHJ#0I#3TY414Y4+5)! M3D=%(#T@,"TR-3$P,#DV+S(U,3 P.3<-"D-/3E1%3E0M3$5.1U1((#T@,C4Q M,# Y-PT*#0H]/3T]/3T]/3T]/3T]/3T]1E)/32!215-5344]/3T]/3T]/3T] M/3T]/3T]/0T*2%144%]204Y'12 ](#$Q-SDQ-# M#0I#3TY414Y4+5)!3D=% M(#T@,3$W.3$T,"TR-3$P,#DV+S(U,3 P.3<-"D-/3E1%3E0M3$5.1U1((#T@ M,3,S,[EMAIL PROTECTED] M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\-"EQ<7%Q<7%Q< M7%Q<7%Q<7%Q<7%Q<7%Q<[EMAIL PROTECTED]'[EMAIL PROTECTED]'4UQ<7%Q<7%Q<7%Q< M7%Q<7%Q<7%Q<7%Q<7%Q<7 T*+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O#0H- M"CT]/3T]/3T]/3T]/3T]/3T]/3U72$E,12!00553140]/3T]/3T]/3T]/3T] M/3T]/3T]/3T]/0T*#0I&<[EMAIL PROTECTED](#$R(# W.C0V.C,P(#(P,#,@0V]N;F5C M=&EN9R!D;W1S;VXN;6EN92YN=3HX, T*1G)I(%-E<" Q,B P-SHT-CHS," R M,# S($-O;FYE8W1I;F<@9&]T<V]N+FUI;F4N;[EMAIL PROTECTED]/38U+C(T,[EMAIL PROTECTED] M-CHX,%T-"D9R:2!397 @,3(@,#<Z-#8Z,S @,C P,R!#;VYN96-T960N#0I& M<[EMAIL PROTECTED](#$R(# W.C0V.C,P(#(P,#,@1T54("]A;65R:6-A<RUB97-T+V1O M=VYL;V%D7W1E<W0N<&AP/V9I;&4]9V5T<G0U,#(N97AE($A45% O,2XQ#0I& M<[EMAIL PROTECTED](#$R(# W.C0V.C,P(#(P,#,@2&[EMAIL PROTECTED]&]T<V]N+FUI;F4N;G4- M"D9R:2!397 @,3(@,#<Z-#8Z,S @,C P,R!!8V-E<'0Z("[EMAIL PROTECTED])I(%-E M<" Q,B P-SHT-CHS," R,# S(%)E9F5R97(Z(&AT=' Z+R]D;W1S;VXN;6EN M92YN=2]A;65R:6-A<RUB97-T+V1O=VYL;V%D7W1E<W1?9F]R;2YP:' -"D9R M:2!397 @,3(@,#<Z-#8Z,S @,C P,R!5<V5R+4%G96YT.B!-;WII;&QA+S0N M," H8V]M<&%T:6)[EMAIL PROTECTED])12 U+C P.R!7:6YD;W=S(#DX*0T*1G)I(%-E M<" Q,B P-SHT-CHS," R,# S(%!R86=M83H@;F\M8V%C:&4-"D9R:2!397 @ M,3(@,#<Z-#8Z,S @,C P,R!#86-H92U#;VYT<F]L.B!N;RUC86-H90T*1G)I M(%-E<" Q,B P-SHT-CHS," R,# S($-O;FYE8W1I;VXZ(&-L;W-E#0I&<FD@ M4V5P(#$R(# W.C0V.C,Q(#(P,#,@2%144"\Q+C$@,C P($]+#0I&<[EMAIL PROTECTED] M(#$R(# W.C0V.C,Q(#(P,#,@4V5R=F5R.B!-:6-R;W-O9G0M24E3+S4N, T* M1G)I(%-E<" Q,B P-SHT-CHS,2 R,# S($1A=&4Z($9R:2P@,3(@4V5P(#(P M,#,@,30Z-#8Z,C @1TU4#0I&<[EMAIL PROTECTED](#$R(# W.C0V.C,Q(#(P,#,@6"U0 M;W=E<F5D+4)Y.B!!4U N3D54#0I&<[EMAIL PROTECTED](#$R(# W.C0V.C,Q(#(P,#,@ M0V]N;F5C=&EO;[EMAIL PROTECTED]<V4-"D9R:2!397 @,3(@,#<Z-#8Z,S$@,C P,R!8 M+5!O=V5R960M0GDZ(%!(4"\T+C,N,@T*1G)I(%-E<" Q,B P-SHT-CHS,2 R M,# S(%-E="U#;V]K:64Z(%!(4%-%4U-)1#UC83%A93,X,[EMAIL PROTECTED]&4Y8CDT M-68U9F%C8SEE-&0P93L@<&%T:#TO#0I&<[EMAIL PROTECTED](#$R(# W.C0V.C,Q(#(P M,#,@17AP:7)E<[EMAIL PROTECTED])I+" Q,B!397 @,C P,R Q-SHT-CHR,"!'350-"D9R M:2!397 @,3(@,#<Z-#8Z,S$@,C P,R!#86-H92U#;VYT<F]L.B!P=6)L:6,L M(&UA>"UA9V4],3 X,# -"D9R:2!397 @,3(@,#<Z-#8Z,S$@,C P,R!,87-T M+4UO9&EF:65D.B!&<FDL(#$R(%-E<" R,# S(#$T.C,W.C,V($=-5 T*1G)I M(%-E<" Q,B P-SHT-CHS,2 R,# S($%C8V5P="U286YG97,Z(&)Y=&5S#0I& M<[EMAIL PROTECTED](#$R(# W.C0V.C,Q(#(P,#,@0V]N=&5N="[EMAIL PROTECTED],@ M,"TR-3$P,#DV+S(U,3 P.3<-"D9R:2!397 @,3(@,#<Z-#8Z,S$@,C P,R!# M;VYT96YT+4QE;F=T:#H@,C4Q,# [EMAIL PROTECTED])I(%-E<" Q,B P-SHT-CHS,2 R M,# S($-O;G1E;G0M5'[EMAIL PROTECTED];&EC871I;VXO97AE#0I&<[EMAIL PROTECTED](#$R M(# W.C0V.C,Q(#(P,#,@0V]N=&5N="U$:7-P;W-I=&EO;CH@:6YL:6YE.R!F M:6QE;F%M93UG971R=#4P,BYE>&4-"D9R:2!397 @,3(@,#<Z-#8Z,S$@,C P M,R!3=&%R="!296-E:79I;F<@1&%T82$-"D9R:2!397 @,3(@,#<Z-#8Z,S$@ M,C P,R!$97-T:6YA=&EO;B!F:6QE(&5X:7-T<[EMAIL PROTECTED];R!R96YA;64-"D9R M:2!397 @,3(@,#<Z-#8Z,S,@,C P,R!5<V5R($-A;F-E;"!!=" Q,3<Y,30P [EMAIL PROTECTED]"CT]/3T]/3T]/3T]/3T]/3T]/3U54$].($-/35!,151%/3T]/3T] M/3T]/3T]/3T]/3T]/3T]/0T*#0I54DP@:'1T<#HO+V1O='-O;BYM:6YE+FYU M+V%M97)I8V%S+6)E<W0O9&]W;FQO861?=&5S="YP:' _9FEL93UG971R=#4P M,BYE>&4-"D-O;6UE;[EMAIL PROTECTED]<G0U,#(N97AE#0I2969E<F5R(&AT=' Z+R]D M;W1S;VXN;6EN92YN=2]A;65R:6-A<RUB97-T+V1O=VYL;V%D7W1E<W1?9F]R M;2YP:' -"E)E<W5M92!997,-"DQO8V%L($9I;&[EMAIL PROTECTED]<1&]W;FQO861<9V5T M<G0U,#(H,2DN97AE#0I&:6QE($1A=&4@,#DO,3(O,#,@,30Z,S<Z,S8-"D9I M;&[EMAIL PROTECTED] R-3$P,#DV#0I#;VUP;&5T960@,C4Q,# [EMAIL PROTECTED]&[EMAIL PROTECTED]&EM M92 P,#HP,#HP,PT*079E<F%G92!3<&5E9" X,3<N,[EMAIL PROTECTED](O<PT*0W)E871E M(%1I;64@,#DO,3(O,#,@,#<Z-#8Z,CD-"D-O;7!L971E(%1I;64@,#DO,3(O -,#,@,#<Z-#8Z-3(-"@`` ` end -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php