например так:
<table width="500" height="30">
<tr>
<td bgcolor="#F06C00"> бланк: </td>
<td bgcolor="#F06C00" align="right"><input name="qw" type="checkbox">проверка</td>
</tr>
</table>
Докачка нужна, когда клиент пользователя пытается продолжить закачку после разрыва соединения и запрашивает часть файла, в указанном диапазоне.
Или при многопоточной закачке качалкой.
Поэтому ничего убирать не советую.
Вот тут проверяется, запросил ли пользователь файл с самого начала и целиком, или только определённый диапазон:
if (!isset($_SERVER["HTTP_RANGE"])) {
Пример хтаццесс:
RewriteEngine onRewriteBase /RewriteRule ^downloads\/([^/]+)$ get.php?fn=$1 [L]
Пример кода (get.php) с поддержкой докачки:
Вырезал лишние строки, поэтому прийдётся самостоятельно подправить ;)
$fn = @basename($_SERVER["REQUEST_URI"]); # processing database counter $db_connection = db_connect_local(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE); $download = db_get_download($fn); if (count($download) == 0) { $download = db_get_latest_download(); } $fs = @filesize(DIR_DOWNLOADS."/".$download["file_name"]); if (!$fs) { header("Location: /"); exit(); } if (!isset($_SERVER["HTTP_RANGE"])) { db_increase_download($download["download_id"]); header ("HTTP/1.1 200 OK"); header ("Expires: Thu, 19 Nov 1981 08:52:00 GMT"); header ("Cache-Control: None"); header ("Pragma: no-cache"); header ("Accept-Ranges: bytes"); header ("Content-Disposition: inline; filename=\"".$download["file_name"]."\""); if (preg_match("#Opera(/| )([0-9].[0-9]{1,2})#", $_SERVER["HTTP_USER_AGENT"]) or preg_match("#MSIE ([0-9].[0-9]{1,2})#", $_SERVER["HTTP_USER_AGENT"])) { header("Content-Type: application/octetstream"); } else { header("Content-Type: application/octet-stream"); } header ("Content-Length: $fs"); header ("Age: 0"); header ("Proxy-Connection: close"); @readfile(DIR_DOWNLOADS."/".$download["file_name"]); }else{ ereg("bytes=([0-9]+)", $_SERVER["HTTP_RANGE"], $m); $contentSize = $fs - intval($m[1]); $p1 = $fs - $contentSize; $p2 = $fs - 1; $p3 = $fs; $p4= $p3 - $p1; header ("HTTP/1.1 206 Partial Content"); header ("Expires: Thu, 19 Nov 1981 08:52:00 GMT"); header ("Cache-Control: None"); header ("Pragma: no-cache"); header ("Accept-Ranges: bytes"); header ("Content-Disposition: inline; filename=\"".$download["file_name"]."\""); if (preg_match("#Opera(/| )([0-9].[0-9]{1,2})#", $_SERVER["HTTP_USER_AGENT"]) or preg_match("#MSIE ([0-9].[0-9]{1,2})#", $_SERVER["HTTP_USER_AGENT"])) { header("Content-Type: application/octetstream"); } else { header("Content-Type: application/octet-stream"); } header ("Content-Range: bytes $p1-$p2/$p3"); header ("Content-Length: $p4"); header ("Proxy-Connection: close"); $fd = @fopen(DIR_DOWNLOADS."/".$download["file_name"], "rb"); @fseek($fd, $p1, SEEK_SET); while(!@feof($fd)) { echo(@fread($fd, $p3)); } @fclose($fd); }
Конкуренты не дремлют :)
Если Вы считаете, что топикстартер берёт 10 баксов за свой "тихий час", то Вы ещё просто не доросли до почасовой оплаты, как ни банально об этом говорить.
Ага! А кто-то когда-то утверждал о необходимости кроссверсийности ;)
Ещё я читаю ваши перепалки. В сабже не заинтересован.
Которая из цифр этого числа (!) должна быть самой пугающей?
Вариант с кнопкой:
http://www.webdeveloper.com/forum/showthread.php?p=661659#post661659
Надеюсь, не возникнет сложностей на чекбокс переделать? :)
Хм... а у нас рисует дизайны художник, полный ноль в вёрстке. :)
И ничего, верстаются его дизайны без проблем. ;)
На самом деле до 4 байт:
http://en.wikipedia.org/wiki/UTF-8
Если Вы видите это название в таск менеджере, то это таск менеджер ;)
С обращениями к диску особо не заморачивайтесь.
1. большинству вирусов это не нужно.
2. скачайте файлмонитор и посмотрите. только чур, потом чтобы никаких вопросов, что где и зачем читает ;) там в списке по пару сотен строк в секунду появляется.
Обновил версию.
- появилась возможность задания префикса и суффикса отображаемым ссылкам (чтобы удобнее задать отображение списком)
- возможность назначать стоимости ссылок на разных страницах.
- публичный список с расценками.
Пример:
http://fcdemo.my-tools.net/listing.php
Кресненькие - мест нет.
Зелёненькие - есть свободные места. :)