Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   swf на сайте работает, на харде нет (http://www.flasher.ru/forum/showthread.php?t=116070)

AleXNoD GD 19.09.2008 12:55

Заливаю swf на сайт, всё запускается.
Качаю его же средствами php, а при открытии белый расползшийся экран. Если же качать напрямую, то всё норм.
Значит что-то в скрипте. Использую вот сие чудо:

Код:

<?php
$filename = $cd."/".$fn;
if (!file_exists($filename))
  {
    header ("HTTP/1.0 404 Not Found");
    exit;
  }
$fsize = filesize($filename);
$ftime = date("D, d M Y H:i:s T", filemtime($filename));
$fd = @fopen($filename, "rb");
if (!$fd){
  header ("HTTP/1.0 403 Forbidden");
  exit;
}
// Если запрашивающий агент поддерживает докачку
if ($HTTP_SERVER_VARS["HTTP_RANGE"]) {
  $range = $HTTP_SERVER_VARS["HTTP_RANGE"];
  $range = str_replace("bytes=", "", $range);
  $range = str_replace("-", "", $range);
  if ($range) {fseek($fd, $range);}
}
$content = fread($fd, filesize($filename));
fclose($fd);
if ($range) {
  header("HTTP/1.1 206 Partial Content");
}
else {
  header("HTTP/1.1 200 OK");
}
header("Content-Disposition: attachment; filename=$fn");
header("Last-Modified: $ftime");
header("Accept-Ranges: bytes");
header("Content-Length: ".($fsize-$range));
header("Content-Range: bytes $range-".($fsize -1)."/".$fsize);
header("Content-type: application/octet-stream");
print $content;
exit;

?>


Либо поставлю вопрос иначе, как правильно качать swf?)))

Mnilionic 19.09.2008 18:34

Код:

if( isset($HTTP_SERVER_VARS["HTTP_RANGE"]) ){...
и давно пора уже вместо $HTTP_SERVER_VARS использовать $_SERVER

AleXNoD GD 19.09.2008 19:41

Если бы это решало проблему

Mnilionic 19.09.2008 23:00

Код:

if ($range){
любим грабли?

Mnilionic 20.09.2008 03:56

Код:

<?php

$file_name = "1.swf";

if( !file_exists($file_name) ){
    header ("HTTP/1.0 404 Not Found");
    header("Content-Type: text/html");
    //header("Content-Disposition: attachment;filename=404.html");
    die('<html><body><h1>404</h1></body></html>');
}


$fp = fopen ($file_name, "rb");


if( isset($_SERVER['HTTP_RANGE']) ){
    $seek = str_replace( array('bytes=','-'), '', $_SERVER['HTTP_RANGE']);
    fseek($fp, $seek);
    header("HTTP/1.1 206 Partial Content");
}


$contents = fread ($fp, filesize ($file_name));
fclose ($fp);

$length = strlen($contents);

header("Content-Type: application/x-shockwave-flash");
header("Content-Length: {$length}");
header("Content-Disposition: attachment;filename={$file_name}");

print $contents;
?>


Яски 20.09.2008 22:47

Mnilionic, а код
Код:

if (!$fd){
  header ("HTTP/1.0 403 Forbidden");
  exit;
}

как у AleXNoD GD не нужен?

Mnilionic 20.09.2008 23:01

мне не нужен

Яски 21.09.2008 03:56

А в принципе нужен? Я в пхп не смыслю, а код заюзать хочется.

Mnilionic 21.09.2008 19:59

в принципе можно застраховаться если вдруг фаил не удаётся прочесть.
Только если вы "не смыслите" Вам это не поможет.
Потому как куски одного кода не всегда подходят к другому.

AleXNoD GD 22.09.2008 12:30

Не, всё то же самое. Оно то качается, но ни черта не воспроизводится.
Ладно, придется через Header("location") :))))

Mnilionic 22.09.2008 14:58

значит что-то криво делается, у меня с этим скриптом, прикрасно чачается, докачвается и вопросизводится после этого

AleXNoD GD 23.09.2008 16:04

Может быть криво закачивается.


Часовой пояс GMT +4, время: 19:12.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.