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

Reply via email to