Выбор файла из каталога
Выбор файла из каталога
Делаю форму, и одно из полей формы - это файл, точнее адрес файла. Файл загружать не надо - он уже есть на сервере. Его нужно просто выбрать. Подскажите - как лучше это сделать? Может быть в yii есть диалог для выбора файлов?
- sergebezborodov
- Сообщения: 133
- Зарегистрирован: 2010.06.10, 19:53
- Откуда: Dnepropetrovsk-Sevastopol, UA
- Контактная информация:
Re: Выбор файла из каталога
делаешь функцию, которая выдает список загруженных файлов в папке на сервере, все это красиво оформляется в интерфейсе и js устанавливается значения в hidden поле где название файла
по POST потом валидируем название файла, чтобы левого шлака не подсунули
по POST потом валидируем название файла, чтобы левого шлака не подсунули
A passion to perform
http://sergebezborodov.com
http://sergebezborodov.com
Re: Выбор файла из каталога
А если файлов много и они разбиты по папкам? В один список их лепить как-то неправильно.
Re: Выбор файла из каталога
выводить в виде TreeView. если подпапок и файлов много, то лучше кешировать, чтобы каждый раз не обходить всё.SunDoctor писал(а):А если файлов много и они разбиты по папкам? В один список их лепить как-то неправильно.
Re: Выбор файла из каталога
Всем привет!
Есть аналогичная задача - брать ссылки на файлы из совершенно отдельного ФТП-хранилища, хранить их в привязке к строкам некоторой модели и отображать для скачки файлов с ФТП-сервера.
Видится это примерно так:
- при формировании ссылки показывать структуру ФТП (на него заходим от имени отдельного пользователя - HTTP-сервера). Использовать TreeView и какую-либо библиотеку работы с FTP. Структура на ФТП-сайте живет по своим законам (анархия, одним словом) и для сохранения целостности ссылок придется вводить ограничения на переименования папок/файлов (пока - на уровне разъяснений пользователям, что переименовывать - нехорошо).
- хранить ссылку в базе - средствами YII, как обычно.
- отображать ссылку на скачку. Тут возможны 2 варианта, поскольку права пользователей на сайте и на ФТП у меня могут различаться и кто-то может прицепить ссылку на файл, который другому пользователю по правилам ФТП-сервера может быть недоступен.
В первом случае, не обращая внимания на разницу прав, разрешить пользователю скачать файл, раз уж его ссылка опубликована . Реальная рабочая ссылка на скачку будет указывать на HTTP-сервер, который незримо для пользователя будет отдавать ему файл с ФТП-сервера.
Во втором случае заставлять пользователя заходить в ФТП-клиент и пусть он скачивает файл в соответствии с показанной ссылкой и с использованием своих прав на ФТП.
Я тоже нахожусь в процессе обдумывания идеи и пока не спеша изучаю вопросы взаимодействия с ФТП.
Пишу здесь в надежде, что кто-то подскажет интересные идеи, как это реализовать, с использованием каких готовых компонентов.
Есть аналогичная задача - брать ссылки на файлы из совершенно отдельного ФТП-хранилища, хранить их в привязке к строкам некоторой модели и отображать для скачки файлов с ФТП-сервера.
Видится это примерно так:
- при формировании ссылки показывать структуру ФТП (на него заходим от имени отдельного пользователя - HTTP-сервера). Использовать TreeView и какую-либо библиотеку работы с FTP. Структура на ФТП-сайте живет по своим законам (анархия, одним словом) и для сохранения целостности ссылок придется вводить ограничения на переименования папок/файлов (пока - на уровне разъяснений пользователям, что переименовывать - нехорошо).
- хранить ссылку в базе - средствами YII, как обычно.
- отображать ссылку на скачку. Тут возможны 2 варианта, поскольку права пользователей на сайте и на ФТП у меня могут различаться и кто-то может прицепить ссылку на файл, который другому пользователю по правилам ФТП-сервера может быть недоступен.
В первом случае, не обращая внимания на разницу прав, разрешить пользователю скачать файл, раз уж его ссылка опубликована . Реальная рабочая ссылка на скачку будет указывать на HTTP-сервер, который незримо для пользователя будет отдавать ему файл с ФТП-сервера.
Во втором случае заставлять пользователя заходить в ФТП-клиент и пусть он скачивает файл в соответствии с показанной ссылкой и с использованием своих прав на ФТП.
Я тоже нахожусь в процессе обдумывания идеи и пока не спеша изучаю вопросы взаимодействия с ФТП.
Пишу здесь в надежде, что кто-то подскажет интересные идеи, как это реализовать, с использованием каких готовых компонентов.