Здравствуйте, форумчане! Подскажите пожалуйста, я извлек из BLOB поля текст - это RTF файл, можно ли создать ссылку на этот документ, не записывая значение переменной как файл на диск? Спасибо
можно. только нужно извлекать блоб не в момент генерации страницы со ссылкой, а вместо этого сделать скрипт, который будет извлекать из блоба этот ртф и писать его в ответ в виде файла. тогда в ссылке нужно будет прописать этот самый скрипт. типа HTML: ляляля <a href='getrtf.php?id=256'>скачать rtf</a> в getrtf.php делаем: PHP: //получаем ртф из базы $sql = 'select rtf_contents from rtf_table where file_id=' . $_GET['id']; //не забываем про защиту от инъекций //вычитываем содержимое файла, подготавливаем http-хидеры, выводим в респонс содержимое файла. все это конечно же схематично.
Дело в том, что разрабатывается не сайт, а веб-узел электронного документооборота. Акцент делается на обеспечении централизованной безопасности и централизованный бэкап, а не настройку политики безопасности сервера, и тем самым ограничение доступа к файлам "вредителей". Я сделал так: при запросе определенных файлов, я их сохраняю во временную директорию и делаю на них ссылки, а bat-файл удаляет эти временные файлы раз в неделю по расписанию.
Вполне нормальное решение. Впрочем удалять можно и чаще это не ресурсоемкая операция. Можно сделать сложнее, записывать где-то время жизни такого файла и сборщиком мусора проверять дату создания и время жизни - если закончилось, то капцы котенку - в смысле удаляем Следующий нюанс, при таком подходе - хранить файлы в БД не нужно вовсе. Если нужен доступ, в каталоге пользователя делаем link на этот файл и пользователь его может читать. Когда время кончилось удаляем этот линк (для создания ссылок в файловой системе требуется Win 2K и старше) Достаточно несложно, отдать пару заголовков и вывести содержимое файла. Только можно - не значит нужно. Т.е. я бы не рекомендовал так делать Ваш вариант с временным файлом - лучше