dl.php
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:1k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. <?php
  2. session_start();
  3. require '../include/MySmarty.class.php';
  4. require '../include/DataBase.php';
  5. if(empty($_GET['id']) 
  6. || empty($_GET['ticket']) || empty($_SESSION['ticket'])
  7. || $_GET['ticket'] != $_SESSION['ticket'])
  8. error404();
  9. $db = new SubtitlesDB();
  10. $id = intval($_GET['id']);
  11. $db->query(
  12. "select t1.name, t2.id, t2.hash, t2.mime from movie_subtitle t1 ".
  13. "join subtitle t2 on t1.subtitle_id = t2.id ".
  14. "where t1.id = $id ");
  15. if(!($row = $db->fetchRow())) error404();
  16. $id = $row['id'];
  17. $hash = $row['hash'];
  18. $name = $row['name'];
  19. $mime = $row['mime'];
  20. $fn = "../subcache/$hash";
  21. @mkdir("../subcache");
  22. if(!($sub = @file_get_contents($fn)) || empty($sub))
  23. {
  24. $db->query("select sub from subtitle where id = $id");
  25. if(!($row = $db->fetchRow())) error404();
  26. $sub = $row['sub'];
  27. if($fp = fopen($fn, "wb")) {fwrite($fp, $sub); fclose($fp);}
  28. }
  29. $db->query("update subtitle set downloads = downloads+1 where id = $id");
  30. //header("Content-Type: $mime");
  31. header("Content-Type: application/octet-stream");
  32. header("Content-Disposition: attachment; filename="$name"");
  33. header("Pragma: no-cache");
  34. $sub = gzuncompress($sub);
  35. if(!headers_sent() && extension_loaded("zlib")
  36. && ereg("gzip", $_SERVER["HTTP_ACCEPT_ENCODING"]))
  37. {
  38. $sub = gzencode($sub, 9);
  39. header("Content-Encoding: gzip");
  40. header("Vary: Accept-Encoding");
  41. header("Content-Length: ".strlen($sub));
  42. }
  43. echo $sub;
  44. exit;
  45. ?>