Автор Тема: Загрузка файла на сервер...?  (Прочитано 4381 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Wolf

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Загрузка файла на сервер...?
« : 12 Мая 2003, 14:37:01 »
Как можно сделать upload файла в "закрытую" дирректорию. Просто загрузку файла я сделал, но нужно, чтобы дирректория была более защищена, т.к. из нее в последствии будет скачиваться архив через сценарий (только после прохождения пользователем аутентификаци):
Цитировать
$name="primer.zip";
header("Content-Type: application/force-download\\r\\n");
header("Content-Transfer-Encoding: binary\\r\\n");
header("Content-Length: ".filesize($name));
header("Content-Disposition: attachment; filename=$name\\r\\n");
header("Location: ".$name);
?>
Век живи, век учись!:)

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Загрузка файла на сервер...?
« Ответ #1 : 12 Мая 2003, 15:31:40 »
Размести эту директорию не в каталоге веб-документов и всё будет ОК. Или можешь .htaccess соответствующий поставить. А если ты такой же извращенец, как я, и файлы у тебя небольшие, то можешь вообще в базу данных их сохранять :D
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Wolf

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Загрузка файла на сервер...?
« Ответ #2 : 12 Мая 2003, 20:41:29 »
А может кто подсказать какие необходимые опции нужно изменить(добавить), чтобы закрыть дирректорию?
Век живи, век учись!:)

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Загрузка файла на сервер...?
« Ответ #3 : 12 Мая 2003, 20:42:58 »
В .htaccess прописать deny from all
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Wolf

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Загрузка файла на сервер...?
« Ответ #4 : 13 Мая 2003, 11:40:36 »
Спасибо, хорошо, даже отлично закрывает, но и мой скрипт не может получить доступ к файлам в дирректории (доступ должен быть только для него)...:(
Век живи, век учись!:)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Загрузка файла на сервер...?
« Ответ #5 : 13 Мая 2003, 17:54:17 »
Нужно не header("Location: /dir/file.zip") делать а что-то вроде
readfile(\'/dir/file.zip\');
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Wolf

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Загрузка файла на сервер...?
« Ответ #6 : 14 Мая 2003, 09:46:28 »
Незнаю, но при
Цитировать
header("Location: /dir/file.zip")
идет сохранение на комп (что мне и нужно), а при
Цитировать
readfile(\'/dir/file.zip\')
- выводит текст в окно браузера.

Как я понял - мне нужно настройки в .htaccess прописать (deny from all закрывает доступ к дирректории полностью), а нужно, чтобы с сайта к файлам можно было получить доступ (чтение и запись через сценарий)...



[OFF]Этот вопрос скорее всего следует задать в разделе серверов.[/OFF]
« Последнее редактирование: 14 Мая 2003, 12:19:28 от Wolf »
Век живи, век учись!:)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Загрузка файла на сервер...?
« Ответ #7 : 14 Мая 2003, 15:04:15 »
denny from all запрещает доступ к каталогу средствами веб-сервера, то есть по HTTP в этот каталог попасть нельзя, соответственно использовать просто редирект  (Location: /path/to/file.zip) нельзя.

Нужно php-скриптом считать файл и выдать его.
Если readfile() выводит содержимое файла, то скорее всего неправильные заголовки шлешь
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Загрузка файла на сервер...?
« Ответ #8 : 14 Мая 2003, 15:37:44 »
Попробуй так:

$name
="primer.zip"
header("Content-Type: application/octet-stream"); 
header("Content-Type: application/force-download"); 
header("Content-Transfer-Encoding: binary"); 
header("Content-Length: ".filesize($name)); 
header("Content-Disposition: attachment; filename=$name"); 
readfile($name);

[off]"\\r\\n" в функции header() ставить необязательно[/off]
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28