|
|
|
| Как получить адрес к файлу, созданному функцией tmpfile() ? | |
|
|
|
|
|
|
|
для: Dr Lines
(20.08.2010 в 08:00)
| | Зачем вам адрес?
tmpfile - создаёт временный файл с уникальным именем, открывая его в режиме чтения и записи (w+), и возвращает файловый указатель таким же образом, как это делает fopen(). Этот файл автоматически удаляется после закрытия (использования fclose()) или после завершения работы скрипта).
Может тогда вам надо tempnam()? | |
|
|
|
|
|
|
|
для: sim5
(20.08.2010 в 08:23)
| | В рабочем коде есть функция, которая в качестве параметра принимает адрес файла на диске, и предполагается, что этот файл удаляется автоматически, после завершения работы скрипта.
Необходимо этой функции подсунуть файл созданный функцией tmpfile().
Причина, по которой пришлось использовать функцию tmpfile() - файл находится удаленно, и получается по http функцией file_get_contents().
tempnam() - не удаляет файл автоматически, по завершению работы скрипта. | |
|
|
|
|
|
|
|
для: Dr Lines
(20.08.2010 в 08:40)
| | Ну получайте содержимое и записывайте в tmpfile(), но зачем, коли по завершению работы скрипта у вас и результат работы file_get_contents() тоже успешно пропадет. | |
|
|
|
|
|
|
|
для: sim5
(20.08.2010 в 08:47)
| | Нужно сначала проверить параметры файла, а потом скопировать в определенную директорию. | |
|
|
|
|
|
|
|
для: Dr Lines
(20.08.2010 в 08:50)
| | Зачем копировать в определенную директорию, если вы сами пишите:
"...и предполагается, что этот файл удаляется автоматически, после завершения работы скрипта." ?
Какие параметры? | |
|
|
|
|
|
|
|
для: sim5
(20.08.2010 в 08:52)
| | Изначально рабочий код предназначен для работы с загруженными файлами методом POST.
При этом получается директория временного файла, загруженного через POST и выполняется его проверка (медиа файл, проверяются его парметры, такие как: размер, расширение, mime-type и др.)
Затем, если параметры подходят, файл копируется из временной директории.
Из временной директории, файл удаляется автоматически. | |
|
|
|
|
|
|
|
для: Dr Lines
(20.08.2010 в 08:59)
| | Ну это и происходит атоматически при загрузке методом POST, зачем же вам и так временный файл переписывать в другой?
PS. Или вы хотите с другого сайта (да еще возможно и с чужого) скачать файл из временной директории, который загрузили методом POST? | |
|
|
|
|
|
|
|
для: sim5
(20.08.2010 в 09:06)
| | Проблема в том, что только при загрузке методом POST получается временный файл, адрес которого известен.
А при загрузке другим способом, такой файл нужно создать вручную. Файл создать непроблема, а вот чтобы он был временным - это проблема.
Адрес файла нужен, чтобы потом его проверить, обработать и скопировать куда следует на постоянное хранение. Или ни чего с ним не делать в противном случае, оставив на самоуничтожение по завершению выполнения скрипта. | |
|
|
|
|
|
|
|
для: Dr Lines
(20.08.2010 в 09:16)
| | А каим еще методом у вас происходит загрузка, кроме как POST? | |
|
|
|
|
|
|
|
для: sim5
(20.08.2010 в 09:46)
| | с url по http | |
|
|
|
|
|
|
|
для: Dr Lines
(20.08.2010 в 09:50)
| | Что значит "с url по http"? Если вы file_get_contents имеет ввиду, то не боитесь ли, что память ваша отвалится? Ведь это не на диск будет сохранено, а в переменную.
Используйте это, но прочтите несколько строк содержащих заголовок файла, разберите и проанализиуйте, если ОК, копируйте фал. Иначе это copy(), анализ, если не то, то unlink(). | |
|
|
|
|
|
|
|
для: sim5
(20.08.2010 в 09:58)
| | Как можно сохранить файл сразу на диск? | |
|
|
|
|
|
|
|
|
для: Valick
(20.08.2010 в 10:06)
| | Она предполагает наличие переменной с данными, это означает, что файл целиком должен быть в памяти. | |
|
|
|
|
|
|
|
для: Dr Lines
(20.08.2010 в 10:13)
| | речь выше шла о file_get_contents я понятия не имею что там у Вас за файлы и какой у них объем | |
|
|
|
|
|
|
|
для: Dr Lines
(20.08.2010 в 10:01)
| | copy(). | |
|
|
|
|
|
|
|
для: sim5
(20.08.2010 в 10:06)
| | А что, на copy можно подавать http адрес файла для скачки? | |
|
|
|
|
|
|
|
для: Dr Lines
(20.08.2010 в 10:14)
| | copy (string source, string dest)
Начиная с PHP 4.3.0, source и dest могут быть URL'ами, если "fopen-оболочки" включены. | |
|
|
|