Go Back   Armenian Knowledge Base > Technical sections > Webmaster Zone > Web Development

Reply
 
Thread Tools

Head tag in download.php
Old 29.10.2003, 09:48   #1
Leo
Вечный Студент
 
Leo's Avatar
 
Join Date: 10 2003
Location: Armenia
Age: 43
Posts: 69
Rep Power: 0
Default Head tag in download.php

U menya na saiyte imeetsya fail download.php dlya skachvaniya failov. (Ex. download.php?filename="foo.ext")
Problema:
kak osushestvit' vozmojnost' dokachki failov?
Spasibo.

Old 29.10.2003, 09:58   #2
Moderator
 
Join Date: 03 2002
Location: Russia
Posts: 123
Rep Power: 0
Default

Покажи код download.php

Old 29.10.2003, 10:18   #3
¡no pasaran!
 
dolphin's Avatar
 
Join Date: 03 2002
Location: localhost
Age: 42
Posts: 540
Rep Power: 5
Default

gy.. chitaj specifikaciju HTTP i http://am.php.net/get_all_headers

nu dal'she fseek() i vse takoe....

a zachem fignej stradat'-to.. pust' oni srazu file kachajut, zachem ty ego cherez php propuskaesh'?

Old 29.10.2003, 10:20   #4
Leo
Вечный Студент
 
Leo's Avatar
 
Join Date: 10 2003
Location: Armenia
Age: 43
Posts: 69
Rep Power: 0
Default

Quote:
Originally posted by hayk
Покажи код download.php
PHP Code:
$f=fopen($filename,"rb");
header("Content-type: x-audio/mp3");
header("Content-Disposition: attachment; filename=$filename");
fpassthru($f);
fclose($f); 

Old 29.10.2003, 10:23   #5
Leo
Вечный Студент
 
Leo's Avatar
 
Join Date: 10 2003
Location: Armenia
Age: 43
Posts: 69
Rep Power: 0
Default

->Dolphine
Mne nado tam statistiku vesti.

->All
Kstati srazu eshyo vopros:
Mojno li uznat' chto user skachal fail (ya imeeyu vvidu kon'chil DL)
10x.

Old 29.10.2003, 10:30   #6
¡no pasaran!
 
dolphin's Avatar
 
Join Date: 03 2002
Location: localhost
Age: 42
Posts: 540
Rep Power: 5
Default

ne znaju.. vrjad-li.. IMHO zavisit ot nastroek http servera, bufferinga tam vsjakogo... timeoutov..

esli webserver svoevremenno prekratit rabotu skripta + budut poslany esche ne vse dannye, to est' shans uznat' ob etom s pomoschju register_shutdown_function()

Old 29.10.2003, 10:51   #7
Moderator
 
Join Date: 03 2002
Location: Russia
Posts: 123
Rep Power: 0
Default

Leo
1. Посмотри этот скрипт - http://www.phpclasses.org/browse.html/package/1134.html

2. Если ты хочешь просто собирать статистику, то лучше сделать так:
PHP Code:
update_stat();
header('Location : ' $filename); 
3. Посмотри ф-цию connection_status() - она возвращает текущий статус. В твоем скрипте, если после fpassthru($f); она вернет NORMAL - то файл нормально скачался.

Old 29.10.2003, 11:50   #8
Leo
Вечный Студент
 
Leo's Avatar
 
Join Date: 10 2003
Location: Armenia
Age: 43
Posts: 69
Rep Power: 0
Default

Vot vse chto tam bylo poleznogo....
PHP Code:
    header ("HTTP/1.1 200 OK");
        
header ("Date: " $this->getGMTDateTime ());
        
header ("X-Powered-By: PHP/" phpversion());
        
header (HDR_X_SCRIPT);
        
header ("Expires: Thu, 19 Nov 1981 08:52:00 GMT");
        
header ("Last-Modified: " $this->getGMTDateTime ($this->fileTime) );
        
header ("Cache-Control: None");
        
header ("Pragma: no-cache");
        
header ("Accept-Ranges: bytes");
        
header ("Content-Disposition: " $this->httpContentDisposition "; filename=\"" $this->fileName "\"");
        
header ("Content-Type: " $this->httpContentType);
        if (
$this->httpContentDescription)
            
header ("Content-Description: " $this->httpContentDescription );
        
header ("Content-Length: " $this->contentSize);
        
header ("Proxy-Connection: close");
        
header (""); 
Na skol'ko ya ponyal nado dobavit'

header ("Accept-Ranges: bytes");

No tak ya proboval paru dnej nazad; NE POMOGLO

Old 29.10.2003, 12:24   #9
Moderator
 
Join Date: 03 2002
Location: Russia
Posts: 123
Rep Power: 0
Default

Cмотри внимательней. Класс все делает сам. Анализируется http запрос и в зависимоти от него формируется тот (http200) или иной (http206) заголовок.

Old 29.10.2003, 22:09   #10
nm
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 54
Posts: 3,118
Rep Power: 0
Default

йо!
1. для статистики анализируй лог файл сервера ....
я почти не поверю что тебе нужно ее иметь в реалтайме ... а обрабатывать докачку и обеспечивать крутую производительность - вебсервер умеет на порядок лучше любого твоего скрипта :) можно ваще отдельный шустрый, маленький вебсервер поставить дна другом порту именно для скачивания - thttpd скажем ;)

2. извращенство, но самый быстрый способ заставить работать :)
делаешь отдельную директорию, которая доступна через хттп, даешь доступ к ней только с локалхоста и потом просто все заголовки/запросы, которые приходят к тебе пробрасываешь в виде запроса к вебсерверу .... ответы отдаешь обратно клиенту (все-все-все, заголовки и данные, которые тебе отдаст вебсервер). но. создаешь двойную загрузку на вебсервер.

3. читаешь спецификацию http и либо реализуешь сам докачку, либо находишь скрипт, который это делает. если по-английски не воспринимаешь тексты, то скорми рфси какому-нить промпту :)

Basta
Old 30.10.2003, 13:18   #11
Leo
Вечный Студент
 
Leo's Avatar
 
Join Date: 10 2003
Location: Armenia
Age: 43
Posts: 69
Rep Power: 0
Default Basta

Vse.
Vsem spasibo!!! Done.
Reply




Реклама:
реклама

All times are GMT. The time now is 01:38.
Top

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.