Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

сохранение файлов с сервера

347
15 августа 2007 года
Maniak
319 / / 05.11.2005
вот есть небольшенький вапросик... как пользователю сохранить на комп файл с сервера? т.е. не по нажатию на прямую ссылку к файлу, а если допустим путь к файлу храниться в переменной, и тогда его сохранить по нажатию на button, или при наступлении какованибудь событтия... или вообще есть какиенибудь другие способы кроме прямой ссылки?
7.9K
15 августа 2007 года
vasa_c
191 / / 05.04.2007
Переадресовать браузер на эту ссылку.
Если там выдается файл на скачку, то появится окно до скачивания и дальше, как обычно. Браузер останется на старой странице.
347
15 августа 2007 года
Maniak
319 / / 05.11.2005
а что это за функция таккая переадрессации браузера?????
7.9K
15 августа 2007 года
vasa_c
191 / / 05.04.2007
window.location.href = 'ссылка';
или как-то так.
347
15 августа 2007 года
Maniak
319 / / 05.11.2005
не так не пайдет... надо скачать файл лежащий вне директорий виртуального хоста, тоесть с любого диска компа... или предложишь все скопировать в папку www)))
353
16 августа 2007 года
Nixus
840 / / 04.01.2007
Зачем? Пишешь или находишь скрипт, который читает файл и выдает его клиенту.
347
16 августа 2007 года
Maniak
319 / / 05.11.2005
так вот что то не понятно как его выдать то клиенту...?
251
16 августа 2007 года
SkyMаn
1.7K / / 31.07.2007
Что конкретно тебе нужно?
Чтобы сервер "заставил" браузера среагировать на входящий файл (с предложением сохранить), надо перед тем этому серверу дать запрос. И неважно, как ты его дашь. Или так: www.server.ru/getfile.php?id=1 или так www.server.ru/ или по-другому. Не знаешь как дать запрос или тебе не нравится <a href=www.server.su/dn.php?f=88 ..</a>. Можешь заюзать windows.location='www.server.su/dn.php?f=88'. А остальное уже зависит от скрипта, который находится "по ту сторону веба".. Уже скрипт может выдавать в заголовке 206 Partial Content (к примеру). Вот скриптик, попробуй:
Код:
<?php
$fn=$_GET["filename"];
if (!file_exists($fn))
{
header ("HTTP/1.0 404 Not Found");
exit;
}
$fsize = filesize($fn);
$ftime = date("D, d M Y H:i:s T", filemtime($fn));
$fd = @fopen($fn, "rb");
if (!$fd){
header ("HTTP/1.0 403 Forbidden");
exit;
}
 
$content = fread($fd, filesize($fn));
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: audio/mpeg");
print $content;
exit;
?>

www.serv.com/script.php?filename=blabla.mp3
347
16 августа 2007 года
Maniak
319 / / 05.11.2005
все понятно...интересовал именно вот этот кусок:
 
Код:
...
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: audio/mpeg");
print $content;
...


кстате какие значения может принимать Content-Type:, что бы копировать с нормальным (расширением файла) расширением?
251
16 августа 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата:
кстате какие значения может принимать Content-Type:, что бы копировать с нормальным (расширением файла) расширением?


Если у тебя стоит веб-сервер, то можешь достать файл mime.types из папки Апач. Если же нет - см. вложения. Кстати, у каждого может быть разный.

347
16 августа 2007 года
Maniak
319 / / 05.11.2005
есть немножко какойто странный глюк: файл всевремя сохраняется под именем выполняющего скрипта, хотя вот здесь
header("Content-Disposition: attachment; filename=$fn");
вроде бы указано под каким именем надо сохранить, а именно под тем под которым его открыли...
и странно что нигде не инициализирована $range
251
16 августа 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: Maniak
есть немножко какойто странный глюк: файл всевремя сохраняется под именем выполняющего скрипта, хотя вот здесь
header("Content-Disposition: attachment; filename=$fn");
вроде бы указано под каким именем надо сохранить, а именно под тем под которым его открыли...
и странно что нигде не инициализирована $range


Если тебе нужны разьяснения читай [COLOR=red]тут[/COLOR] :)

268
15 октября 2007 года
Михаил
587 / / 25.06.2005
как работает print? синхронно или асинхронно? не вылетит ли скрипт по таймауту?
15
15 октября 2007 года
shaelf
2.7K / / 04.05.2005
2Михаил На дату смотреть учили?:)))
268
15 октября 2007 года
Михаил
587 / / 25.06.2005
неужто за 2 месяца ситуация так кардинально поменялась? :-?
15
16 октября 2007 года
shaelf
2.7K / / 04.05.2005
Во избежание флуда тему закрываю.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог