#1 2009.05.28 14:52

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Помогите с форумом

Есть форум находится в папке /forum/ ...выгрузка файлов идёт в папку /sys/forum/files/ид_файла.frf (любой формат файла он преобразует в .frf)

Скачка должна идти по такой ссылке /forum/files/ид_файла/название файла.оригинальное_расширение_ файла

Так вот скачка не идёт пишет что типо не найдено.

Вот код откуда должно качать

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// проверка на существование файла
if (isset($_GET['id']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_files` WHERE `id` = '".intval($_GET['id'])."'"),0)==1){
$file=mysql_fetch_array(mysql_query("SELECT * FROM `forum_files` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"));
 
if (is_file(H.'sys/forum/files/'.$file['id'].'.frf') && isset($user) && $user['level']>=1 && isset($_GET['del'])){
 
if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']!=NULL){
$link =$_SERVER['HTTP_REFERER'];
}else{
$link='/index.php';}
 
mysql_query("DELETE FROM `forum_files` WHERE `id` = '$file[id]' LIMIT 1");
unlink(H.'sys/forum/files/'.$file['id'].'.frf');
 
if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']!=NULL){
header("Location: $_SERVER[HTTP_REFERER]");
}else{
header("Location: /forum/index.php?".SID);}
}else if (is_file(H.'sys/forum/files/'.$file['id'].'.frf')){
mysql_query("UPDATE `forum_files` SET `count` = '".($file['count']+1)."' WHERE `id` = '$file[id]' LIMIT 1");
DownloadFile(H.'sys/forum/files/'.$file['id'].'.frf', $file['name'].'.'.$file['ras'],$file['type']);
exit;}

Вот функция DownloadFile

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
function DownloadFile($filename, $name, $mimetype='application/octet-stream'){
if (!file_exists($filename))
die('Файл не найден');
$from=0;
$size=filesize($filename);
$to=$size;
 
if(isset($_SERVER['HTTP_RANGE'])){
if (eregi ('bytes=-([0-9]*)',$_SERVER['HTTP_RANGE'],$range)){ // если указан отрезок от конца файла
$from=$size-$range[1];
$to=$size;
}elseif(eregi('bytes=([0-9]*)-',$_SERVER['HTTP_RANGE'],$range)){ // если указана только начальная метка
$from=$range[1];
$to=$size;
}elseif(eregi('bytes=([0-9]*)-([0-9]*)',$_SERVER['HTTP_RANGE'],$range)){ // если указан отрезок файла
$from=$range[1];
$to=$range[2];}
header('HTTP/1.1 206 Partial Content');
$cr='Content-Range: bytes '.$from .'-'.$to.'/'.$size;
}else{
header('HTTP/1.1 200 Ok');}
 
$etag=md5($filename);
$etag=substr($etag, 0, 8) . '-' . substr($etag, 8, 7) . '-' . substr($etag, 15, 8);
header('ETag: "'.$etag.'"');
header('Accept-Ranges: bytes');
header('Content-Length: ' .($to-$from));
 
if(isset($cr)){
header($cr);}
 
header('Connection: close');
header('Content-Type: ' . $mimetype);
header('Last-Modified: ' . gmdate('r', filemtime($filename)));
header("Last-Modified: ".gmdate("D, d M Y H:i:s", filemtime($filename))." GMT");
header("Expires: ".gmdate("D, d M Y H:i:s", time() + 3600)." GMT");
$f=fopen($filename, 'rb');
 
 
if(eregi('^image/',$mimetype)){
header('Content-Disposition: filename="'.$name.'";');
}else{
header('Content-Disposition: attachment; filename="'.$name.'";');}
 
fseek($f, $from, SEEK_SET);
$size=$to;
$downloaded=0;
while(!feof($f) and ($downloaded<$size)){
$block = min(1024*8, $size - $downloaded);
echo fread($f, $block);
$downloaded += $block;
flush();}
fclose($f);}

Помогите кто может...

Отредактировано WapStyle (2009.05.28 14:56)

Неактивен

#2 2009.05.28 15:04

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Re: Помогите с форумом

Вот есть резкльтат:
Вот если начать качать так
http://сайт.ру/forum/files/ид_файла/имя_файла.оригинал_расширение - выдаст что не найдено
а если качать так
http://сайт.ру/forum/files/ид_файла/имя_файла.frf - качает.

Но как теперь сделать чтоб расширение обратно менял?

Неактивен

#3 2009.05.28 15:09

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите с форумом

ну прально, файла же по пути с реальным расширением нету. нужен мод реврайт. что в .htaccess ? и режут глаза ереги. тут на форуме есть моя функция отдачи файлов с докачкой, используй лучше ее.

Неактивен

#4 2009.05.28 15:14

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Re: Помогите с форумом

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
php_value register_globals off
php_value session.use_trans_sid 1
DirectoryIndex index.php
AddDefaultCharset UTF-8
Options -Indexes
php_value session.cookie_lifetime 0
Options SymLinksIfOwnerMatch
RewriteEngine On
 
 
 
 
##Попадаем в редактирование поста
RewriteRule ^([0-9]*)/([0-9]*)/([0-9]*)/([0-9]*)/cit index.php?id_forum=$1&id_razdel=$2&id_them=$3&id_post=$4&act=cit&page=end [L,QSA]
RewriteRule ^([0-9]*)/([0-9]*)/([0-9]*)/([0-9]*)/msg index.php?id_forum=$1&id_razdel=$2&id_them=$3&id_post=$4&act=msg&page=end [L,QSA]
RewriteRule ^([0-9]*)/([0-9]*)/([0-9]*)/([0-9]*)/edit index.php?id_forum=$1&id_razdel=$2&id_them=$3&id_post=$4&act=edit&page=end [L,QSA]
RewriteRule ^([0-9]*)/([0-9]*)/([0-9]*)/([0-9]*)/delete index.php?id_forum=$1&id_razdel=$2&id_them=$3&id_post=$4&act=delete&page=end [L,QSA]
 
 
##Попадаем в тему
RewriteRule ^([0-9]*)/([0-9]*)/([0-9]*)/d_file([0-9]*)$ index.php?id_forum=$1&id_razdel=$2&id_them=$3&f_del=$4&page=end [L,QSA]
RewriteRule ^([0-9]*)/([0-9]*)/([0-9]*)/new$ index.php?id_forum=$1&id_razdel=$2&id_them=$3&act=new&page=end [L,QSA]
RewriteRule ^([0-9]*)/([0-9]*)/([0-9]*)/?$ index.php?id_forum=$1&id_razdel=$2&id_them=$3 [L,QSA]
RewriteRule ^([0-9]*)/([0-9]*)/([0-9]*)/mark/(.*)$ index.php?id_forum=$1&id_razdel=$2&id_them=$3&mark=$4 [L,QSA]
 
 
 
##Попадаем в раздел
RewriteRule ^([0-9]*)/([0-9]*)/?$ index.php?id_forum=$1&id_razdel=$2 [L,QSA]
 
##Попадаем в подфорум
RewriteRule ^([0-9]*)/?$ index.php?id_forum=$1 [L,QSA]
 
## Файлы
RewriteRule ^files/delete/([0-9]*)/ files.php?id=$1&del [L,QSA]
RewriteRule ^files/([0-9]*)/ files.php?id=$1 [L,QSA]

Неактивен

#5 2009.05.28 15:34

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите с форумом

RewriteRule ^files/([0-9]+).*/ files.php?id=$1 [L,QSA]
последнюю строку в .htaccess попробуй замени на эту.

Неактивен

#6 2009.05.28 15:40

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Re: Помогите с форумом

не робит.
Может трабла в коде (1пост 1код 21 строка)

З.Ы. твою фукцию я не нашол  sad
Добавлено спустя   6 минут  27 секунд:
Во прикол ввожу на скачку http://newep.ru/forum/files/1/DJ_Solovey_Kazantip_2009_radio_edit.frf при скачке опера (комповская) выдала что качается файл DJ_Solovey_Kazantip_2009_radio_edit.mp3

Это как так???

А вот через эту не хочет качать http://newep.ru/forum/files/1/DJ_Solovey_Kazantip_2009_radio_edit.mp3

Отредактировано WapStyle (2009.05.28 15:48)

Неактивен

#7 2009.05.28 16:10

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите с форумом

так, ты же в адресной строке браузера что воодишь? ссылку с реальным именем и расширением? я так понимаю скрипт вообще не срабатывает, т.к. мод реврайт не переадресует на него.

Неактивен

#8 2009.05.28 16:27

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Re: Помогите с форумом

В алресной строке ввожу
http://newep.ru/forum/files/1/DJ_Solovey_Kazantip_2009_radio_edit.frf - качает DJ_Solovey_Kazantip_2009_radio_edit.mp3
Пишу
http://newep.ru/forum/files/1/DJ_Solovey_Kazantip_2009_radio_edit.mp3 - пишет что не найдено

Неактивен

#9 2009.05.28 16:35

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите с форумом

ну так почему оно должно быть найдено, если такого файла нет?????
и в .htaccess не определен обработчик перехватывающий подобные ссылки.
в конце .htaccess напиши
RewriteRule ^files/([0-9]+)/.* files.php?id=$1 [L,QSA]

Неактивен

#10 2009.06.02 15:48

Casper
Модератор-невидимка
Откуда: Усть-Кут
Зарегистрирован: 2007.12.15
Сообщений: 183
Карма: -1
Профиль

Re: Помогите с форумом

Подскажите, как сделать, чтоб мой ник, в посте, например, если обращаются ко мне, был выделен?

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.011 s