[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скачивание файлов
MaxOK
Здравствуйте! Задача такая: есть около 2000 файлов с одинаковыми именами (различие только номере файла, например - fail1.tip, fail2.tip, fail3.tip, ... и так далее) и нужно чтобы при вводе пользователем в форму на странице сайта номера файла, начинал скачиваться именно этот файл. Например пользователь вводит в текстовое поле число 250 и скачивается файл - fail250.tip
Разъясните пожалуйста как это реализовать. Заранее спасибо! )
Valick
MaxOK, в чем заключается трудность? Создать форму? Отправить запрос на сервер? Принять запрос? Обработать запрос? Отдать клиенту файл?


_____________
Стимулятор ~yoomoney - 41001303250491
MaxOK
Если в общем, то отдать клиенту файл. Взять данные с текстового поля и вставить в гиперссылку, по которой клиент скачивает файл.
Valick
MaxOK, так показывайте форму и обработчик.


_____________
Стимулятор ~yoomoney - 41001303250491
MaxOK
Вот форма:
<form action="обработчик.php" method="post" name="winners">
<input
name="name" type="text" value="" /> <input name="submit" type="submit" value="Скачать" /> </form>

Вот обработчик:
<?PHP
$dir=scandir(/*путь к файлам*/);
$all=sizeof($dir);
for($i=0; $i<$all; $i++){
if($dir[$i]=='..') continue;
$arr[]='<a href="'/*путь к файлам*/.$dir[$i].'">'.$dir[$i].'</a>';
}
$numb=$_POST['name'];
echo $arr[$numb];
?>
Valick
ну как-то так
<?php
$name = isset($_POST['name'])?(int)$_POST['name']: false;
if($name){
$filename = 'file'.$name.'.txt';
$file = 'upload/'.$filename;
if(file_exists($file)){
if ($fd = fopen($file, 'rb')){
if (ob_get_level()){
ob_end_clean();
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Transfer-Encoding: binary ");
header('Content-Length: ' . filesize($file));
while (!feof($fd)){
echo fread($fd, 1024);
}
fclose($fd);
exit;
}else{
$error[] = 'Невозможно скачать файл '.$filename;
}
}
else{
$error[] = 'Запрашиваемый файл <b>'.$filename.'</b> не существует';
}
}

header('Content-type: text/html; charset=utf-8');
echo isset($error)? '<ul><li>'.implode('</li><li>',$error).'</li></ul>' : '';
?>
<form action="" method="post" name="winners">
<
input name="name" type="text" value="" />
<
input name="submit" type="submit" value="Скачать" />
</
form>


_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.