Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не скачвается файл
Форумы портала PHP.SU » » Если скрипт не работает » Не скачвается файл

Страниц (1): [1]
 

1. Vitalash - 06 Ноября, 2013 - 20:36:17 - перейти к сообщению
Привет всем!! У меня такая проблема, вот после покупки архив в некоторых браузерах скачвается а в некоторых нет.. Например в гугле хроме не скачвается чкажите в чём проблема?
PHP:
скопировать код в буфер обмена
  1. define('DIR_UPLOAD_IMAGES','screens');
  2. define('DIR_UPLOAD_SCRIPT','uploads/screepts_34543524356dgasd');
  3. echo '<div class="downsw"><b>&bull; Мои покупки</b></div>';
  4. if(isset($_USER)){
  5.  
  6.  
  7. // Скачивание
  8. if(isset($_GET['id'])){
  9.      $id = intval(abs($_GET['id']));
  10.          
  11.          if(mysql_num_rows(mysql_query('select * from `my_tov` where `id_tov` = "'.$id.'" and `id_user` = "'.$_USER['id'].'"')) == 1){
  12.          
  13.         // функция
  14. function DownloadFile($filename, $name, $mimetype='application/octet-stream')
  15. {
  16. if (!file_exists($filename))
  17. die('Файл не найден');
  18. $from=0;
  19. $size=filesize($filename);
  20. $to=$size;
  21. if (isset($_SERVER['HTTP_RANGE']))
  22. {
  23. if (preg_match ('#bytes=-([0-9]*)#i',$_SERVER['HTTP_RANGE'],$range)) // если указан отрезок от конца файла
  24. {
  25. $from=$size-$range[1];
  26. $to=$size;
  27. }
  28. elseif(preg_match('#bytes=([0-9]*)-#i',$_SERVER['HTTP_RANGE'],$range)) // если указана только начальная метка
  29. {
  30. $from=$range[1];
  31. $to=$size;
  32. }
  33. elseif(preg_match('#bytes=([0-9]*)-([0-9]*)#i',$_SERVER['HTTP_RANGE'],$range)) // если указан отрезок файла
  34. {
  35. $from=$range[1];
  36. $to=$range[2];
  37. }
  38. header('HTTP/1.1 206 Partial Content');
  39.  
  40.  
  41. $cr='Content-Range: bytes '.$from .'-'.$to.'/'.$size;
  42. }
  43. else
  44. header('HTTP/1.1 200 Ok');
  45. $etag=md5($filename);
  46. $etag=substr($etag, 0, 8) . '-' . substr($etag, 8, 7) . '-' . substr($etag, 15, 8);
  47. header('ETag: "'.$etag.'"');
  48. header('Accept-Ranges: bytes');
  49. header('Content-Length: ' .($to-$from));
  50. if (isset($cr))header($cr);
  51. header('Connection: close');
  52. header('Content-Type: ' . $mimetype);
  53. header('Last-Modified: ' . gmdate('r', filemtime($filename)));
  54. header("Last-Modified: ".gmdate("D, d M Y H:i:s", filemtime($filename))." GMT");
  55. header("Expires: ".gmdate("D, d M Y H:i:s", time() + 3600)." GMT");
  56. $f=fopen($filename, 'rb');
  57.  
  58.  
  59. if (preg_match('#^image/#i',$mimetype))
  60. header('Content-Disposition: filename="'.$name.'";');
  61. else
  62. header('Content-Disposition: attachment; filename="'.$name.'";');
  63.  
  64. fseek($f, $from, SEEK_SET);
  65. $size=$to;
  66. $downloaded=0;
  67. while(!feof($f) and !connection_status() and ($downloaded<$size))
  68. {
  69. $block = min(1024*8, $size - $downloaded);
  70. echo fread($f, $block);
  71. $downloaded += $block;
  72. }
  73. fclose($f);
  74. }
  75. /////////////////////////////////////////////////////////////
  76.  
  77. $i = mysql_fetch_assoc(mysql_query('select * from `my_tov` where `id_tov` = "'.$id.'"'));
  78.  
  79.    $q = mysql_fetch_Assoc(mysql_query('select * from `shop` where `id` = "'.$i['id_tov'].'"'));
  80.    
  81.    $s_name = $_SERVER['DOCUMENT_ROOT'].'/shop/'.DIR_UPLOAD_SCRIPT.'/'.$q['script'];
  82.  
  83. DownloadFile($s_name,$q['script']);      
  84.          
  85.          } else {
  86.              echo 'Товар не найден';
  87.          }
  88. }
  89. //
  90. if(isset($_GET['del'])){
  91.                    
  92.                          
  93.                          mysql_query('delete from `my_tov` where `id_user` = "'.$_USER['id'].'"');
  94.                          header('location: index.php');
  95.                  }
  96.                  
  97.                  
  98.  
  99. $query = mysql_query('select * from `my_tov` where `id_user` = "'.$_USER['id'].'" order by `id` desc');
  100. if(mysql_num_rows($query) == 0){
  101.      echo '<div class="menuindex"><b>Товаров нет</b></div>';
  102. } else {
  103.      $query = mysql_query('select * from `my_tov` where  `id_user` = "'.$_USER['id'].'"  order by `id` desc');
  104.           echo "<div class='menuindex'><img src='/images/del.gif'/> <a href='?id=$id&del'>Удалить все покупки</a></div>";
  105.          while($qi = mysql_fetch_Assoc($query)){
  106.          
  107.          $q = mysql_fetch_Assoc(mysql_query('select * from `shop` where `id` = "'.$qi['id_tov'].'"'));
  108.        
  109.              echo '<div class="menuindex">
  110.                  <b>'.$q['title'].'</b><br/>
  111.                      <img src="/shop/'.DIR_UPLOAD_IMAGES.'/'.$q['img'].'" width="100" height="150" alt=""/><br/>
  112.                          Цена: <img src="/images/coins.png"/><b>'.$q['price'].'</b> кр.<br/>
  113.                         &raquo; <a href="?id='.$q['id'].'">Скачать</a>
  114.                  </div>';
  115.          }
  116. }        
  117. } else {
  118.      header('location: /');
  119. }

 

Powered by ExBB FM 1.0 RC1