Здравствуйте Мне нужно вот какую штучку сделать. Сайт типа интернет магазина с предоплатной системой расчета. То есть пользователь пополняет свой баланс через wm , после чего данные о его балансе хранятся в мускуле. Это я все могу сделать, просто описываю общую картину. Товар в магазине не материальный а просто напросто суть в том, что человек этим балансом должен оплатить скачку файла. Так вот, как сделать так чтобы, файл не был доступен по прямой ссылке на него(хотя его можно и замаскировать заковыристым именем), но при этом, при обращении к файлу должен произойти sql запрос на вычет баланса в зависимости от цены файла, скачка самого файла, и последующая недоступность халявной скачки файла, то есть я так понимаю нужна фишка в временной ссылкой. Выходит запрос и штука с временной ссылкой должна быть в одном скрипте... запрос - это и ежику понятно а вот как зделать временную ссылку и объединить ее с запросом , тут я и в ступоре... с тем и обращаюсь
файл можешь положить за пределы документ рута и отдавать пхп скриптом ... соответственно при оплате формируется ссылка , и при попытке скачать скрипт определяет что ссылка на такой файл и отдает его по кусочку... но у тебя есть проблема - как понять что фаил скачан полностью ? а вдруг обрыв ? а если файл качался в несколько потоков ?
а скажем давать персональную ссылку, которая будет активна втечение суток и только для этого ip, ну или что вроде того. вобщем принцип файлообменников. если это вариант - просвятите пожалуйста как это оформить
зачем IP ? при неудачном скачивании высока вероятность что человек реконектится ... и в домовых сетях это приводит к смене IP ... в принципе при контролируемой отдачи ты знаешь того кто скачивает (он же залогинился), то есть временная ссылка действительна для данного пользователя в течении суток (вполне тривиальная задача). пример: 1. поместить фаил в корзину 2. при оплате - снять денег и сгенерировать какой-нибудь хэш и выложить хешь в таблицу (айди пользователя;дата генерации;путь до файла;хеш) 3. при запросе хеша (проверяем его наличие, доступность файла, время действия хеша), и если все ок зачитываем фаил и скармливаем его браузеру вроде все ...
ок, спасибо, в принципе все ясно, но вот скармливать его как после запросов и т.д. хедером что ли? или как? после хедера в истории ведь останется путь к файлу...
блин - как скармливать ? принт - и все (естественно сначала правильно указав в хедере тип контента и имя файла - да да там это можно), какой путь ? если ты его отдаешь ручками причем тут путь .. в истории максимально что останется это хеш файла ... п.с.: вот вопрос - может тебе пока отложить задачу ? при таких вопросах следующую проблему ты не решишь ... причем объяснить не смогу (слишком большая пропасть в понимании технологии) ....
- а суточная ссылка не решение этой проьлемы? - если я правильно понял вопрос, то это же не проблема, если ссылка предоставляется одному залогиненному юзеру
- хз зависит от многих параметров (когда решал подобную задачу - то уже на тестировании отмели решение - "суточные ссылки") и что ? а он воспользовался регетеом и выкачал все в несколько потоков (хотя это можно запретить ... ) - в общем обратил внимание, что данные вопросы не рассмотрены, и в последствии можно классно в этом увязнуть ....
кормешка файла производится так? PHP: <? header('Content-type: application/x-download'); header('Content-Disposition: attachment; filename=body.jpg;'); readfile('img/template/body.jpg'); ?> работает оно правильно, но может в чем то ошибаюсь
...filename=body.jpg;.... > ....filename="body.jpg";... а то можно заморочится при руских названиях для ИЕ