<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Hey.<br>
    <br>
    How can i implement mp4; on this <br>
    <br>
    Tried many ways, but urls doesnt work when mp4; is added<br>
    <br>
    It will only be .mp4 files on this script.<br>
    <br>
    <b>nginx.conf code below:</b><br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location /d/ {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perl&nbsp; download::handler;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
    <br>
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # usergroup1<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location /download_f/ {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alias /disk1/site.com/cgi-bin/uploads/;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; internal;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set $limit_rate $arg_speed;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; limit_conn one 1;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # usergroup2<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location /download_r/ {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alias /disk1/site.com/cgi-bin/uploads/;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; internal;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set $limit_rate $arg_speed;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; limit_conn one 1;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # usergroup3<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location /download_p/ {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alias /disk1/site.com/cgi-bin/uploads/;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; internal;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set $limit_rate $arg_speed;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; limit_conn one 10;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
    <br>
    <br>
    <b>download.pm code below:</b><br>
    package download;<br>
    use strict;<br>
    use nginx;<br>
    use Crypt::HCE_MD5;<br>
    <br>
    my $dl_key = "somekey";<br>
    my $upload_dir="/disk1/site.com/cgi-bin/uploads/";<br>
    <br>
    sub handler {<br>
    &nbsp;&nbsp;&nbsp; my $r = shift;<br>
    <br>
    &nbsp;&nbsp;&nbsp; my $hce = Crypt::HCE_MD5-&gt;new($dl_key,"SOMENAME");<br>
    &nbsp;&nbsp;&nbsp; ($_) = $r-&gt;filename=~/\/(\w+)\/[^\/]+$/;<br>
    &nbsp;&nbsp;&nbsp; my $l;<br>
    &nbsp;&nbsp;&nbsp; tr|a-z2-7|\0-\37|;<br>
    &nbsp;&nbsp;&nbsp; $_=unpack('B*',$_);<br>
    &nbsp;&nbsp;&nbsp; s/000(.....)/$1/g;<br>
    &nbsp;&nbsp;&nbsp; $l=length;<br>
    &nbsp;&nbsp;&nbsp; $_=substr($_,0,$l &amp; ~7) if $l &amp; 7;<br>
    &nbsp;&nbsp;&nbsp; $_=pack('B*',$_);<br>
    <br>
    &nbsp;&nbsp;&nbsp; my
    ($srv_id,$file_id,$usr_id,$dx,$id,$dmode,$speed,$i1,$i2,$i3,$i4,$expire)
    = unpack("SLLSA12ASC4L", $hce-&gt;hce_block_decrypt($_) );<br>
    &nbsp;&nbsp;&nbsp; $dx=sprintf("%05d",$dx);<br>
    &nbsp;&nbsp;&nbsp; $speed = $speed."k" if $speed;<br>
    <br>
    #&nbsp;&nbsp;&nbsp; if($r-&gt;remote_addr !~ /^$i1\.$i2\./)<br>
    #&nbsp;&nbsp;&nbsp; {<br>
    #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $r-&gt;internal_redirect("/error_wrong_ip.html");<br>
    #&nbsp;&nbsp;&nbsp; }<br>
    #elsif($expire&lt;time)<br>
    &nbsp;&nbsp;&nbsp; if($expire&lt;time)<br>
    &nbsp;&nbsp;&nbsp; {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $r-&gt;internal_redirect("/error_expired.html");<br>
    &nbsp;&nbsp;&nbsp; }<br>
    &nbsp;&nbsp;&nbsp; elsif(!-f "$upload_dir/$dx/$id")<br>
    &nbsp;&nbsp;&nbsp; {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $r-&gt;internal_redirect("/error_nofile.html");<br>
    &nbsp;&nbsp;&nbsp; }<br>
    &nbsp;&nbsp;&nbsp; else<br>
    &nbsp;&nbsp;&nbsp; {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $r-&gt;header_out("Content-Disposition","attachment");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
$r-&gt;internal_redirect("/download_$dmode/$dx/$id?id=$file_id&amp;usr=$usr_id&amp;speed=$speed&amp;".$r-&gt;args);<br>
    &nbsp;&nbsp;&nbsp; }<br>
    <br>
    &nbsp;&nbsp;&nbsp; return OK;<br>
    }<br>
    <br>
    1;<br>
    <br>
  </body>
</html>