|
|
|
|
|
для: JIEXA
(08.03.2005 в 23:55)
| | 1) Требуется использовать примерно следующий код
<?php
$hostname = "www.server_files.ru"; //units.ru - имя сервера
$filename = "/files/super_file.zip"; // интересующий на сервере
файл
get_size($hostname, $filename);
?>
|
C FTP данный код работать не будет - там другой порядок работы, отличается, порт и протокол, да и к сокетам прибегать нужды нет, так как в PHP имеется собственный набор функций для работы с FTP протоколом. http://www.softtime.ru/group/id_group=8
2) Для этого на странице http://www.my_site.ru/downloads?id=4 следует поставить перенаправление на файл
<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=http://www.server_files.ru/files/super_file.zip'>
</HEAD></HTML>
|
| |
|
|
|
|
|
|
| 1. Мне надо узнавать размер файла на другом
сервере. Я
нашел код в журнале "ХАКЕР":
<?php
$hostname = "units.ru"; //units.ru - имя сервера
$filename = "/files/winamp.exe"; // интересующий на сервере
файл
get_size($hostname, $filename);
function get_size($hostname, $filename)
{
$end = false;
$fp = fsockopen($hostname, 80, &$errnr, &$errstr) or
die("$errno:$errstr");
fputs($fp, "HEAD ".$filename." HTTP/1.0\n\n");
while (!$end) {
$line = fgets($fp, 2048);
if(trim($line) == "") {
$end=true;
} else {
$sre = explode(": ", $line);
if ($str[0] == "Content-Length")
print "Size of ".$filename." file ".$str[1]." bytes";
}
}
fclose($fp);
}
?>
|
Так как мне из этой функции сделать так, чтобы к примеру
есть ссылка
http://www.server_files.ru/files/super_file.zip
и имея эту ссылку определить размер файла super_file.rar
Я просто хочу сделать чтобы размеры файлов определялись
автоматически.
Учтите расширения файла может быть другим, и протокол может
быть ftp!
Если не трудно, то напишите готовый код.
2. Как сделать чтобы ссылка скачиваемого файла была
http://www.my_site.ru/downloads?id=4 , а по-натоящиму она
была такой
http://www.server_files.ru/files/super_file.zip . Только,
чтобы и в
качалках при скачивании отображалась
http://www.my_site.ru/downloads?id=4 , но скачивался файл
http://www.server_files.ru/files/super_file.zip
У меня есть кусок кода, но его надо дороботать, чтобы он
работал с url
а не с разбитым на куски url:
<?php
$files=array( 'track01.mp3', 'escreen.exe');
$filenames=array( 'Thank ABBA for the music.mp3',
'Escreen.exe');
$additional_info=array( 'Various artists - Thanx ABBA for
the music : 4978602 bytes', 'Shareware program to make a
screenshot: 529920 bytes');
$url= "/home/lemmen/public_html/data/";
/* When the files are on another server, use the
whole address (http://www.server.com/dir/) in stead of
/home/lemmen... */
$referer=ereg_replace( "\?.", "",$HTTP_REFERER);
$thisfile= "http://$HTTP_HOST$PHP_SELF";
if ($referer!=$thisfile){
echo "<center><big>Homepage: <a
href=\"http://home.support.nl/~lemmen\">http://home.support.
nl/~lemmen</big><br><hr><br><br></center>";
for ($i=0;$i<count($files);$i++)
echo "<P><A HREF=\"$PHP_SELF?$i\">",$filenames[$i],
"</A> $additional_info[$i]\n";
}
else {
$i=$QUERY_STRING;
$total=$url . $files[$i];
Header ( "Content-Type: application/octet-stream");
Header ( "Content-Length: ".filesize($total));
Header( "Content-Disposition: attachment;
filename=$filenames[$i]");
readfile($total);
}
?>
|
| |
|
|
|
|