Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Распаковка архива
 
 автор: co6r   (18.02.2006 в 15:02)   письмо автору
 
 

Вообщем я делаю архиватор на зип файлы который распаковывает файлы на сервер и с помощью флажков(галочек) юзер выбирает нужные файлы и сохраняет их на комп. Но у меня не получается сделать так чтобы определялись отмеченные файлы.
Прикрепляю всю работу, очень прошу помочь!

   
 
 автор: co6r   (18.02.2006 в 21:18)   письмо автору
 
   для: co6r   (18.02.2006 в 15:02)
 

помогите очень прошу

   
 
 автор: Drago   (18.02.2006 в 21:29)   письмо автору
 
   для: co6r   (18.02.2006 в 21:18)
 

Что-то я не понял, как он работает. В архиве, только HTML файлы.

   
 
 автор: co6r   (18.02.2006 в 22:53)   письмо автору
 
   для: Drago   (18.02.2006 в 21:29)
 

не может быть, перед архивирование там все было =\
странно, с утра еще раз попробую прикреплю суда

   
 
 автор: co6r   (19.02.2006 в 10:43)   письмо автору
 
   для: co6r   (18.02.2006 в 22:53)
 

присоединяю

   
 
 автор: co6r   (19.02.2006 в 15:18)   письмо автору
 
   для: co6r   (19.02.2006 в 10:43)
 

хелп!

   
 
 автор: co6r   (19.02.2006 в 22:40)   письмо автору
 
   для: co6r   (19.02.2006 в 15:18)
 

Как пользователю можно выдать несколько файлов на сохраниние?
прошу помочь

   
 
 автор: co6r   (20.02.2006 в 07:47)   письмо автору
 
   для: co6r   (19.02.2006 в 22:40)
 

Вопрос в силе мне надо здать сегодня, прошу помоч

   
 
 автор: co6r   (20.02.2006 в 20:38)   письмо автору
 
   для: co6r   (20.02.2006 в 07:47)
 

вопрос в силе

   
 
 автор: cheops   (20.02.2006 в 22:48)   письмо автору
 
   для: co6r   (20.02.2006 в 20:38)
 

В основном ответов мало, потому что файлы очень здоровые, что в них? Почему они так много места занимают?

   
 
 автор: co6r   (21.02.2006 в 08:07)   письмо автору
 
   для: cheops   (20.02.2006 в 22:48)
 

уважаемый, cheops, мне нужна ваша помощь и файлы пока тут не причем. Подскажите, пожалуйста, как с помощью header можно выдать пользователю несколько файлов?


<?php
Error_Reporting
(E_ALL & ~E_NOTICE);
//cikl
  
for ($i 0$i <= count($ARX); $i++)
  {
//   echo $ARX[$i]." ";
                                                              
//soxranenie
header("Content-Disposition: attachment; filename=\"$ARX[$i]\"");
header("Content-Type: application/x-force-download; name=\"$ARX[$i]\"");
}                                                                                      

?>

выдает только 1 файл(если он pic), а в других случаях Array, или 4 .

   
 
 автор: cheops   (21.02.2006 в 13:34)   письмо автору
 
   для: co6r   (21.02.2006 в 08:07)
 

Нет одним PHP-файлом тут не управитесь - нужно при помощи JavaScript открыть 4 окна, в каждом из котором будет PHP-код, который предложит сохранить по одному файлу.

   
 
 автор: co6r   (21.02.2006 в 14:11)   письмо автору
 
   для: cheops   (21.02.2006 в 13:34)
 

А указать где взять скрипт не можете?

   
 
 автор: cernos   (21.02.2006 в 16:25)   письмо автору
 
   для: co6r   (21.02.2006 в 14:11)
 

Хм! А не проще ли сделать не галочками, а показывать название файла как ссылку т.е.

[url]image.jpg[/url]
[url]readme.txt[/url]
[url]install.txt[/url]
[url]resorse.jpg[/url]
Каждая ссылка указывает на определенный файл! который хранится где там в темпе

   
 
 автор: cernos   (21.02.2006 в 16:28)   письмо автору
 
   для: co6r   (21.02.2006 в 08:07)
 

Вот взять ваш скрипт и переделать таким вот образом:

<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
//cikl 
  for ($i 0$i <= count($ARX); $i++) 
  
                                                             
//soxranenie 
echo "<a href=\"$ARX[$i]\" title='Скачать файл $ARX[$i]'>$ARX[$i]</a><br>\n"
}
                                                                                       
?>
 

   
 
 автор: co6r   (23.02.2006 в 11:39)   письмо автору
 
   для: cernos   (21.02.2006 в 16:28)
 

А как по ссылке выдавать разные файлы на сохранение?
А то так он мне их открывает браузером

   
 
 автор: Трататых   (23.02.2006 в 12:49)
 
   для: co6r   (23.02.2006 в 11:39)
 

Можно сделать ещё проще: нужные несколько файлов запаковывать в архив .zip и затем отдавать посетителю.

>А как по ссылке выдавать разные файлы на сохранение?
>А то так он мне их открывает браузером
Посылать хедер с несуществующим типом, тогда броузер не будет пытаться его ассоциировать с каким-либо приложением.

   
 
 автор: co6r   (24.02.2006 в 09:57)   письмо автору
 
   для: Трататых   (23.02.2006 в 12:49)
 

>Посылать хедер с несуществующим типом, тогда броузер не будет пытаться его >ассоциировать с каким-либо приложением.

можно поточнее?, что-то у меня не получается...

   
 
 автор: Трататых   (24.02.2006 в 11:13)
 
   для: co6r   (24.02.2006 в 09:57)
 

Можно и подробнее (некотые переменные остались выше или в др. файле, ну да сам разберёшся):

Скрипт смотрит путь с юних машины через самбу и поддерживает докачку, еств. весь файл в память не берёт.

$filename = '/mnt/samba/'.$serv.'/'.$dira."/".$full;
if (!file_exists($filename))
    {
    header ("HTTP/1.0 404 Not Found");
    echo "HTTP/1.0 404 Not Found";
    exit;
    }

$fsize = filesize($filename);
$ftime = date("D, d M Y H:i:s T", filemtime($filename));
$fdata = @fopen($filename, "rb");
if (!$fdata)
    {
    header ("HTTP/1.0 403 Forbidden");
    echo "HTTP/1.0 403 Forbidden";
    exit;
    }

if ($_SERVER["HTTP_RANGE"])
    {
    $range = $_SERVER["HTTP_RANGE"];
    $range = str_replace("bytes=", "", $range);
    $range = str_replace("-", "", $range);
    if ($range) {fseek($fdata, $range);}
    }

if ($range)
    {
    header("HTTP/1.1 206 Partial Content");
    } else {
    header("HTTP/1.1 200 OK");
    }

header("Content-Disposition: attachment; filename=\"$full\"");
header("Last-Modified: $ftime");
header("Accept-Ranges: bytes");
header("Content-Length: ".($fsize-$range));
header("Content-Range: bytes $range-".($fsize -1)."/".$fsize);
header("Content-type: application/octet-stream");
header("Content-Type: application/force-download");           // вот примерно такие нужны хэдеры
header("Content-Type: application/download");
header("Content-Transfer-Encoding: binary");

while (!feof ($fdata))
    {
    $inew = date("s");
    print fgets($fdata,4096);
    } // X while

fclose($fdata);

   
 
 автор: co6r (гость)   (03.03.2006 в 09:29)
 
   для: Трататых   (23.02.2006 в 12:49)
 

1. я из файлы как раз из zip достаю
2. не ужели, просто через <a href=..> никак нельзя?

   
 
 автор: Trianon   (03.03.2006 в 11:37)   письмо автору
 
   для: co6r (гость)   (03.03.2006 в 09:29)
 

на самом деле из заголовков нужно только
header("Content-type: application/octet-stream; name=\"$filename\""); 
header("Content-Disposition: attachment; filename=\"$filename\""); 


А ежели хочется просто, то неужели правой кнопкой нажать на ссылку и выбрать "Сохранить объект как..." это так сложно?

   
 
 автор: co6r (гость)   (03.03.2006 в 21:55)
 
   для: Trianon   (03.03.2006 в 11:37)
 

точно...забыл про этувозможность, спасибо

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования