![]() |
Тут вопрос один... Никто не подскажет как сделать так чтобы ПХП сам автоматически удалял файл вместе с временной папкой после того как его скачал пользователь???!!! Написал скрипт, который посылает запрос на поиск файла на серваке, и в случае если имеется таковой, создает случайную временную директорию и копирует туда этот файл. Это для того чтобы повально не скачивали. Но зашел в тупик когда захотел сделать так чтобы он автоматически удалял теперь файл с папкой после его скачивания. Знаю опцию is_uploaded_file, но нет опции is_downloaded_file :(
|
Kasap
ну можно чтонибуть придумать с помощью MySQL. например давать доступ на некоторое время а потом удалять! |
А что выдаётся, если скрипт пытается удалить файл, который в данный момент скачивается юзером??
Может какой то код ошибки?? Тогда можно так сделать, при каждым вызове скрипта пытаемся удалить все временные файлы, если ошибка (то есть юзер ещё не закачал), то оставляем в покое этот файл, а если файл удалился без проблем, то значит задание выполнено :) Но тут появляется сразу первая проблема: а если у юзера связь оборвалась и он будет докачивать через пару минут??? А мы в эти пару минут удаляем файл :( не порядок. Можно ещё смотреть, как давно файл является временным, например предположить, что юзер должен за час скачать файл, тогда все файлы, созданные более часа назад, удаляем |
Kasap
Это довольно затруднительно. Могу порекомендовать поставить антилич какой-нибудь. Это избавит от заботы что-либо отслеживать и удалять и решит проблему. |
Спасибо за советы,
Prisoner хотелось бы узнать что такое Антилич , и вообще проблема удаления файлов по факту скачивания стоит, возможен ли такой скрипт который бы их удалял после того как их скачали, как можно вообще проверить если кто то уже коннектился? |
Kasap
по поводу - Цитата:
Резюме - стоит дождаться ответа Prisoner про Цитата:
|
:)
Просто применение антилича тут как раз в тему (если я верно понимаю смысл первого поста). А зверь этот дает скачивать файлы с твоего сайта только посетителям, пытающихся же закачать твой файл по ссылке (с другого сайта) посылают ибо нефиг. А то представь себе хотя бы 50 пользователей качающих твой файлик по твоей системе - 50 копий, а с растущим размером файла число одновременных закачек тоже увеличивается, не так ли? То есть алгоритм такой: нашелся файл, передать пользователю ссылку через антилич, что скроет расположение файла на сервере и не даст "халявщикам" не смотреть на твои баннеры :). |
А просто установить "живучесть" файла? Это конечто не самое лучшее, но если другого выхода нет то и это сойдет.
|
Цитата:
|
ИМХО, если учитывать вариант докачки - задача фактически не решабельна.
|
Тут уважаемые товарищи контекст такой. Предполагается, что файл будет качаться с мобильных телефонов а не с компьютера. А необходимость в удалении нужна для того чтобы пользователь скачав файл однажды не смог скачать его второй раз с того же телефона. Вотъ...
Prisoner - и всетаки что есть Антилич, привди хотя бы пример программы (если это программа) или скрипта соответствующего если можешь благодарю |
Дык:), не легче ли зпомнить IP заходящего?...
Создаешь базу данных в неё "вбиваешь" IP адреса всех, кто когда нить качал файл. Еслю юзер захочет скачать файл - проверяй есть ли такой IP в базе, если есть - то нефиг, если нету - то начинается закачка. Ведь и у трубок "есть свой IP"... З.Ы. антилич для данной проблемы не нужен... имхо... |
Ещё одна мысль: Download-центры - есть много уже готовых таких скриптов, например здесь, написанные на PHP. Там есть много всяких интересных функций по управлению скачивания файлов.
А вообще, один из простых и надёжных вариантов-это сделать для каждого юзера свой аккаунт, то есть, чтобы скачивать можно было только введя свои пароль и имя, и удалять файл часа через 12 после его создания. А юзеру так и выдавать: "Внимание, после нажатия на кнопку СКАЧАТЬ файл будет доступен для скачивания в течение 12 часов. Далее файл будет удалён" Добавлено: mar Цитата:
По-моему такое можно с помощью управления ftp-сервером сделать. Если эту информацию как то можно получить, то тогда считаем сколько байтов загружено и сколько всего весит файл, если значения равны->удаляем ?? [s]Исправлено: vadimiron, 14:59 10-10-2004[/s] |
Кажись нельзя такую инфу получить. Серверу без разницы сколько с него выкачали.. Или я заблуждаюсь?:o
[s]Исправлено: XCoder, 18:09 10-10-2004[/s] |
Цитата:
Что касается ip, то если они раздаются трубкам динамически - то ничего путного мы тут не выловим. Действительно, самое разумное - вход на 12 часов с предупреждением =) vadimiron там (среди скриптов) действительно всего много, но из того, что тут обсуждается, только, пожалуй *FMUKanti Leech 1.0 *- "скрипт для предотвращения несанкционированного скачивания Ваших файлов. Работает с файлами mp3, zip, exe и изображениями. Скрипт скрывает реальный адрес Ваших файлов, может быть использован внутри тега IMG" и Leecher 3 - "использует два метода для защиты Ваших файлов. Первый - использование cookie для перенаправления на выбранный файл. Второй - случайное изменение последних трех символов имени файла." Но учета размера скаченного, естественно, нет :( Добавлено: да, совсем забыла :/ - в протоколе HTTP 1.1 есть возможность обеспечения докачки, но, насколько мне помнится, она заключается в том, что в ответ на специальный запрос клиента сервер посылает запрошенный кусок файла. (То есть сам сервер опять-таки докачку не регулирует, и доехал ли искомый кусок до клиента - не знает. Можно, конечно, отлавливать эти самые клиентские запросы, рассчитывать время между кусками и т.д. Но нельзя быть уверенными, что клиенты именно так файлы запросят. Вот :( Так что -резюме: пока ничего лучше совета vadimiron (12 часов на раграбление файла =) - не вижу.) - Если только применение таинственного Антилич-а не окажется лучше =) |
Таинственного? Предложенные тобой, mar, скрипты и есть таинственные антиличи... у первого это даже недвусмысленно подчекнуто в названии :).
|
Prisoner
а я решила, что это личи, а есть еще какие-то анти :biglaugh: |
Антилич как раз для этого и предназначен, тоесть ссылка для скачивания файла работает только один раз!
|
Время: 23:06. |
Время: 23:06.
© OSzone.net 2001-