Я только начал изучать C# и .NET. Меня интересует вопрос каким образом можно организовать счетчик загруженных программ со страницы? Я попробовал варианты с FileSystemWatcher (этот класс не может отслеживать чтение файлов), HttpHadler. Информацию я собираюсь хранить в виде сериализованного объекта. Подскажите решение вопроса или может этот "велосипед" уже изобретён?
сувж К.С.
22.08.03 11:57: Перенесено модератором из '.NET' — AVK
Здравствуйте, Аноним, Вы писали: А>Я только начал изучать C# и .NET. Меня интересует вопрос каким образом можно организовать счетчик загруженных программ со страницы? Я попробовал варианты с FileSystemWatcher (этот класс не может отслеживать чтение файлов), HttpHadler. Информацию я собираюсь хранить в виде сериализованного объекта. Подскажите решение вопроса или может этот "велосипед" уже изобретён?
Надо сделать не прямое скачивание, когда например
<a href="/downloads/program.exe">download program.exe</a>
а скачивание через "подающий" скрипт, типа
<a href="/downloader.aspx?filename=program.exe">download program.exe</a>
этот самый "подающий" скрипт (downloader.aspx) может выглядеть так:
Здравствуйте, ventyl, Вы писали:
V>Надо сделать не прямое скачивание, когда например V><a href="/downloads/program.exe">download program.exe</a>
.....
V>Это код только примерный, наверное даже в нем ошибки но смысл такой... Кстати, так можно ограничить доступ к скачиваемому файлу...
Я (тот кто задавал вопрос — Сергей) попробовал ваше решение , но только вместо загрузки файла, загружается (записывается на диск) не файл, а сама страница.aspx . Не подскажите где я ошибся? Заранее благодарен.
Шуруп забитый молотком, держит лучше чем гвоздь закрученный отверткой.
Здравствуйте, Alarm, Вы писали:
A>Я (тот кто задавал вопрос — Сергей) попробовал ваше решение , но только вместо загрузки файла, загружается (записывается на диск) не файл, а сама страница.aspx . Не подскажите где я ошибся? Заранее благодарен.
На самом деле это имя файла просто такое на диск записывается. Надо так (добавить Content-Disposition в Header):
Здравствуйте, ventyl, Вы писали:
V>Это код только примерный, наверное даже в нем ошибки но смысл такой... Кстати, так можно ограничить доступ к скачиваемому файлу...
но надо понимать также что это ликвидирует возможность докачки файлов для пользователей.
Здравствуйте, Gollum, Вы писали:
G>Здравствуйте, ventyl, Вы писали:
V>>Это не суть важно.
G>Это суть важно
V>>На самом деле счетчик через Application делать не нужно, нужно в БД сохранять или в файл на крайний случай.
G>И предусмотреть возможность блокировок и конкурентного доступа, которые никуда не изчезают.
на самом деле не совсем, я бы не увеличивал конкретное поле в базе, а вел бы лог, типа при каждой скачке в таблицу Downloads добавлялась бы запись вроде
FileID;IP;DateTime
так проще, и заодно можно статистику вести когда больше качают.
Здравствуйте, mogadanez, Вы писали:
M>на самом деле не совсем, я бы не увеличивал конкретное поле в базе,
Я бы тоже. Я просто отвечаю человеку, который говорит, что проблемы синхронизации — это не суть важно.
M>а вел бы лог, типа при каждой скачке в таблицу Downloads добавлялась бы запись вроде M>FileID;IP;DateTime так проще, и заодно можно статистику вести когда больше качают.
Более того, IIS такой лог уже ведет (если поставлена соотв. галочка.), и я в своем постинге Re[2]: счетчик для ссылок
Здравствуйте, Gollum, Вы писали: G>Я бы тоже. Я просто отвечаю человеку, который говорит, что проблемы синхронизации — это не суть важно.
Я вообще имел ввиду больше отличие прямого скачивания (как изначально я понимаю хотел спрашивающий) от "через подающий aspx". Суть моего ответа в этом, а не в проблемах синхронизации.
Я сам прекрасно знаю и про Lock приложения, и про прочее...
Геннадий, у меня всё закачивается, но только имя для сохраняемого файла не то, что на самом деле , т.е я закачиваю файл с именем *.*, а на диск пишется этот файл но имя у него DownLoad без расширения (по названию страницы которую вызываем). Если к имени добавляю его расширение, то файл становится работоспособным. Не подскажите?
Заранее благодарен. Сергей.
Шуруп забитый молотком, держит лучше чем гвоздь закрученный отверткой.
Здравствуйте, Геннадий Ким aka ventyl, Вы писали:
ГКA>Я сам прекрасно знаю и про Lock приложения, и про прочее...
Тогда потрудитесь пояснять свою точку зрения сразу. Вот цитата из постинга:
G>>Есть ошибки... Так как вот эти странички могут запрашиваться многими пользователями, возможна такая ситуация:
V>Это не суть важно. На самом деле счетчик через Application делать не нужно, нужно в БД сохранять или в файл на крайний случай.
Из этого по-моему никак не следует, что
ГКA>Я вообще имел ввиду больше отличие прямого скачивания (как изначально я понимаю хотел спрашивающий) от "через подающий aspx". Суть моего ответа в этом, а не в проблемах синхронизации.
А телепатическими способностями, увы, не обладаю.
В лучших книгах всегда нет имен, и в лучших картинах — лиц
Здравствуйте, Alarm, Вы писали:
A>Геннадий, у меня всё закачивается, но только имя для сохраняемого файла не то, что на самом деле , т.е я закачиваю файл с именем *.*, а на диск пишется этот файл но имя у него DownLoad без расширения (по названию страницы которую вызываем). Если к имени добавляю его расширение, то файл становится работоспособным. Не подскажите? A>Заранее благодарен. Сергей.
Здравствуйте, Gollum, Вы писали:
G>Здравствуйте, Геннадий Ким aka ventyl, Вы писали:
ГКA>>Я сам прекрасно знаю и про Lock приложения, и про прочее...
G>Тогда потрудитесь пояснять свою точку зрения сразу. Вот цитата из постинга:
G>
G>>>Есть ошибки... Так как вот эти странички могут запрашиваться многими пользователями, возможна такая ситуация:
V>>Это не суть важно. На самом деле счетчик через Application делать не нужно, нужно в БД сохранять или в файл на крайний случай.
G>Из этого по-моему никак не следует, что
G>
ГКA>>Я вообще имел ввиду больше отличие прямого скачивания (как изначально я понимаю хотел спрашивающий) от "через подающий aspx". Суть моего ответа в этом, а не в проблемах синхронизации.
G>А телепатическими способностями, увы, не обладаю.
Ты не прав.... прочти еще раз, про "не суть важно" писал не Генадий, а Вентиль
Здравствуйте, Gollum, Вы писали:
G>Здравствуйте, mogadanez, Вы писали:
M>>Ты не прав.... прочти еще раз, про "не суть важно" писал не Генадий, а Вентиль
G>
G>>Здравствуйте, Геннадий Ким aka ventyl, Вы писали:
Меня зовут Гена, мой ник ventyl и я сначала выбрал его, но так как я не люблю анонимность то некоторое время решил именоваться настоящим именем.
Просьба не обижаться на меня если я не прав, я первый день тут и еще не привык к нормам поведения, принятым на данном ресурсе.
Что касается слова "суть", которое возможно было не совсем правильно понято, то я имел ввиду такую ситуацию (for example):
Например, спрашивается:
мне нужно вывести картинку в виде круга, я запускаю MS Paint на сервере и генерирую события мыши, рисую круг, сохраняю файл в папке на диске С и потом делаю редирект. Но если два пользователя, то бывают нарушения.
отвечается:
на самом деле лучше делать через GDI+, вот примерный код...
и тут я имел ввиду суть в том, чтобы перейти от Paint к GDI+, а не детали реализации.
Еще раз прошу прощения, что может быть как-то ответил грубо...