Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Скачать файл с сервера - как организовать?
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Скачать файл с сервера - как организовать?

Страниц (1): [1]
 

1. OlgaD - 30 Сентября, 2011 - 11:48:07 - перейти к сообщению
В форме есть список выбора текстовых шаблонов select. Нужно из представленного списка дать посетителю возможность скачать себе шаблон. Попробовала таким способом:

forma.php отправляет форму на

vybor.php:
PHP:
скопировать код в буфер обмена
  1. $file = ("/Templates/template1.txt");
  2. header ("Content-Type: application/octet-stream");
  3. header ("Accept-Ranges: bytes");
  4. header ("Content-Length: ".filesize($file));
  5. header ("Content-Disposition: attachment; filename=".$file);  
  6. readfile($file);



Но после отправки всплывает окно с запросом сохранить файл vybor.php ... а нужно, чтоб было template1.txt !!!

Подскажите новичку, что здесь не так.
2. Мелкий - 30 Сентября, 2011 - 12:00:47 - перейти к сообщению
А в самом файле - содержимое скрипта или нужного шаблона?
В первом случае - PHP у вас не выполняется.
Во втором - phpfaq.ru/debug
3. OlgaD - 30 Сентября, 2011 - 13:17:47 - перейти к сообщению
Извините, ничего не поняла...
Вот forma.php:
PHP:
скопировать код в буфер обмена
  1. <?
  2. echo '<h3 style="color:green;">Скачать шаблон</h3>
  3. <form  name="" action="http://www.localhost/Hru/vybor.php" method="POST" >
  4. <table  cellspacing="4" style="padding: 0px; width: 500px; border:  0px;">
  5.         <tr>
  6.                 <td>
  7.                         <select name="select_t">
  8.                                 <option value=01>Шаблон №1</option>
  9.                                 <option value=02>Шаблон №2</option>
  10.                                 <option value=03>Шаблон №3</option>
  11.                                 <option value=04>Шаблон №4</option>
  12.                                 <option value=05>Шаблон №5</option>
  13.                         </select>
  14.                 </td>
  15.                 <td><input name="submit" type="submit" value="Скачать"></td>
  16.         </tr>
  17. </table>
  18. </form>';
  19.  
  20. ?>


А это vybor.php:

PHP:
скопировать код в буфер обмена
  1. $file = ("/Templates/template1.txt");
  2. header ("Content-Type: application/octet-stream");
  3. header ("Accept-Ranges: bytes");
  4. header ("Content-Length: ".filesize($file));
  5. header ("Content-Disposition: attachment; filename=".$file);  
  6. readfile($file);


Что где неверно записано?
4. Мелкий - 30 Сентября, 2011 - 13:25:17 - перейти к сообщению
С виду - верно. Вопрос в том, что происходит при этом.

OlgaD пишет:
окно с запросом сохранить файл vybor.php

В файле что приходит?
5. OlgaD - 30 Сентября, 2011 - 13:42:01 - перейти к сообщению
В сохраненном файле vybor.php пришло следующее:
<!--error--><br />
<b>Warning</b>: filesize() [<a href='function.filesize'>function.filesize</a>]: stat failed for /Templates/template1.txt in <b>Z:\home\localhost\www\Hru\vybor.php</b> on line <b>5</b><br />
<script language=JavaScript src='/denwer/errors/phperror_js.php'></script><!--error--><br />
<b>Warning</b>: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\Hru\vybor.php:5) in <b>Z:\home\localhost\www\Hru\vybor.php</b> on line <b>5</b><br />
<script language=JavaScript src='/denwer/errors/phperror_js.php'></script><!--error--><br />
<b>Warning</b>: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\Hru\vybor.php:5) in <b>Z:\home\localhost\www\Hru\vybor.php</b> on line <b>6</b><br />
<script language=JavaScript src='/denwer/errors/phperror_js.php'></script><!--error--><br />
<b>Warning</b>: readfile(/Templates/template1.txt) [<a href='function.readfile'>function.readfile</a>]: failed to open stream: No such file or directory in <b>Z:\home\localhost\www\Hru\vybor.php</b> on line <b>7</b><br />
<script language=JavaScript src='/denwer/errors/phperror_js.php'></script>
6. Мелкий - 30 Сентября, 2011 - 13:48:43 - перейти к сообщению
OlgaD пишет:
No such file or directory

Ну вот. Нет указанного файла по указанному пути. Все прочие ошибки - связаны с этой.

Так вижу, используется denwer, следовательно - винда. А там не существует адрес /. Хотя, может, как-то и обрабатывается. Возможно имелось в виду
PHP:
скопировать код в буфер обмена
  1. $file = "./Templates/template1.txt";
7. OlgaD - 30 Сентября, 2011 - 13:55:53 - перейти к сообщению
А точнее $file = "../Templates/template1.txt";

Спасибо, теперь все работает! Закатив глазки

 

Powered by ExBB FM 1.0 RC1