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

Форум PHP

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

 

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

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

тема: Как узнать имя файла зная его дескриптор?
 
 автор: WoolF   (11.07.2007 в 14:42)   письмо автору
 
 

Собственно сабж.
Например как узнать имя файла создаваемого функцией tmpfile() ?

   
 
 автор: Unkind   (11.07.2007 в 15:06)   письмо автору
 
   для: WoolF   (11.07.2007 в 14:42)
 

Никак, думаю. Да и не за чем. Этот файл все равно сдохнет после fclose().

   
 
 автор: WoolF   (11.07.2007 в 15:19)   письмо автору
 
   для: Unkind   (11.07.2007 в 15:06)
 

Да, но мне нужно сначала его юзеру отдать, прежде чем он удалится. ИМХО как нибудь да можно...

   
 
 автор: Sobachka   (11.07.2007 в 15:28)   письмо автору
 
   для: WoolF   (11.07.2007 в 15:19)
 

тогда лучше обойтись другими функциями :)

   
 
 автор: Hidden Demon   (11.07.2007 в 21:02)   письмо автору
 
   для: Sobachka   (11.07.2007 в 15:28)
 

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

   
 
 автор: Unkind   (11.07.2007 в 21:22)   письмо автору
 
   для: Hidden Demon   (11.07.2007 в 21:02)
 

Он хочет узнать имя файла. Вы предлагаете хранить имя файла. Откуда он его возмет?

   
 
 автор: Unkind   (11.07.2007 в 15:28)   письмо автору
 
   для: WoolF   (11.07.2007 в 15:19)
 

Так и отдавайте.
После записи в него "перемотайте" на начало rewind'ом или fseek'ом.

А вообще отдавать в каком виде? Ссылку на него дать или еще че? Зачем вообще во временный файл записывать, а не сразу данные передавать?

   
 
 автор: WoolF   (11.07.2007 в 15:32)   письмо автору
 
   для: Unkind   (11.07.2007 в 15:28)
 

Отдавать нужно через доп. скрипт, который находится в другом файле и ему нужно передать имя файла который нужно отдать юзеру, но файл этот отдается уже под другим именем, таким образом усложняется загрузка файла пользователем напрямую (что в данном случае мне тоже нужно).
Кстати, тема связана с темой http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=40293&page=1

   
 
 автор: Unkind   (11.07.2007 в 15:37)   письмо автору
 
   для: WoolF   (11.07.2007 в 15:32)
 

Я же сказал, что он сдохнет после закрытия. О каком другом скрипте может быть речь?

Записывайте в обычный файл.

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

   
 
 автор: WoolF   (11.07.2007 в 15:45)   письмо автору
 
   для: Unkind   (11.07.2007 в 15:37)
 

Вот этот доп. скрипт которому нужно передать имя:


<?php

ob_start
();

echo 
file_get_contents($_GET['file']);

$buf=ob_get_contents();
ob_end_clean();

header("Content-Disposition: attachment; filename=url_status_ok.txt");
header("Content-type: application/octet-stream");

echo 
$buf;

?>


Придется наверное все-таки и правда другим образом как-то поступать...
Но имя файла через дескриптор все равно было бы не лишним знать как узнать. =)

   
 
 автор: Unkind   (11.07.2007 в 15:56)   письмо автору
 
   для: WoolF   (11.07.2007 в 15:45)
 

Зачем? Это никому не нужно. Даже Вам.

Скрипт ужасный. Вы специально пихаете файл в буфер. А если он будет 500 мегабайт?
1. Уберите весь ужас до header'ов.
2. Используйте readfile() для передачи файла. Он не гробит RAM.
3. Сделайте защиту от скачивания произвольных файлов с сервера, доступных PHP.

   
 
 автор: WoolF   (11.07.2007 в 22:36)   письмо автору
 
   для: Unkind   (11.07.2007 в 15:56)
 

3. Сделайте защиту от скачивания произвольных файлов с сервера, доступных PHP.

Можно об этом чуть подробнее пожалуйста?
О функции readfile() почему то не подумал, спасибо.

   
 
 автор: Unkind   (11.07.2007 в 15:58)   письмо автору
 
   для: WoolF   (11.07.2007 в 15:45)
 

cheops!
Сделайте наконец защиту от добавления одинаковых сообщений в БД.
Не нужны никакие дополнительные запросы к БД. Просто делайте MD5-хеш сообщения и сохраняйте в сессию. В следующий раз делайте проверку хешей текущего и пред. сообщений.
5 строк кода.
А как уже достало.

   
 
 автор: sms-send   (11.07.2007 в 21:25)   письмо автору
 
   для: Unkind   (11.07.2007 в 15:58)
 

Да, мешает часто.
Была б тут ещё сессия...
Разве что в кукис хеш писать.

   
 
 автор: Unkind   (11.07.2007 в 22:08)   письмо автору
 
   для: sms-send   (11.07.2007 в 21:25)
 

А вроде есть сессия. А вообще без разницы. Хоть в cookies.

   
 
 автор: Trianon   (12.07.2007 в 11:38)   письмо автору
 
   для: Unkind   (11.07.2007 в 22:08)
 

толку-то... если отклик до клиента не долетел, как до него долетит кукис?

Хеш сообщения можно писать в поле таблицы пользователей. Это достаточно мягкий для сервера запрос.

   
Rambler's Top100
вверх

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