• Как правильно организовать хранение прикрепленных файлов?

    Записывать информацию о файлах в базу. И все действия с файлами осуществлять в зависимости от данных в базе.

    Например, пользователь загрузил файл, в базу записывается имя, размер, путь физического расположения, связь с записью и т.п., ставится отметка «временный». Когда пользователь отправляет сообщение, отметка «временный» снимается. Для связи с записью можно сгенерировать что-нибудь типа GUID. Т.е. пользователь заходит на страницу добавления сообщения. В hidden-поле должен быть уникальный GUID потенциальной записи. При загрузке файлов, GUID используется для сохранения связи с записью.

    Если пользователь удаляет добавленное ранее сообщение, то связанным файлам можно поставить отметку «удален».

    Сделать робота, который будет физически удалять временные файлы и файлы помеченные, как удаленные. Ну и из базы тоже. Хотя в базе можно информацию оставлять, для статистики.

    Робот может работать раз в сутки. Для временных файлов можно смотреть по дате добавления файла, если файл был добавлен больше 24 часов назад, то можно его удалять. Ну а удаленные, просто удалять, без дополнительных проверок.

    Если привязывать загружаемые файлы к пользователям, то можно и размер ограничивать без проблем.

    Если пользователь не зарегистрирован на сайте, то можно в куку писать, опять же, GUID и у себя в базе смотреть, сколько этому GUID можно загружать файлов. Но с зарегистрированными пользователями надежней, особенно если есть механизмы подтверждения email и/или телефона.
  • ReCaptcha, как препятствие при регистрации?

    Если это ваш сайт, то лучше вообще убрать капчу. Поставить какой-нибудь JavaScript маркер и проверять его. От большинства автоботов роботов поможет.

    Если сайт чужой, то с подобной проблемой следует обращаться к его владельцам. Или, как вариант, можно попробовать другой браузер использовать.
  • Как сделать валидацию и свойство disabled для ссылки?

    Просто запрещать переход, если форма заполнена неправильно:
    <a class="word-export btn btn-large btn-block btn-primary" href="javascript:void(0)" onclick="return IsValid()">Экспорт в .doc</a>

    function IsValid()
    {
      if (проверка полей формы успешная)
      {
        // если все ok, даем добро на переход по ссылке:
        return true;
      }
      else 
      {
        // если что-то заполнено неправильно, запрещаем переход:
        return false;
      }
    }
  • Функция не возвращает решение, поч?

    function multiply(x, y)
    {
      if (!isNumber(y) || !isNumber(x)) 
      {
        return 'sasai';
      }
      else
      {
        var res = x*y;
        return res;
      }
    }
    
    function isNumber(value) {
      return !isNaN(parseFloat(value)) && isFinite(value);
    }
    
    console.log(multiply(2, 2));
  • Должен ли View содержать логику?

    Да, лучше разбить все на пару миллионов мелких частей, чтобы потом, сидя в позе лотоса, блуждать во всем этом сутками, бормоча себе под нос, голосом молодой индианки, мелодичное заклинание: больше часов, больше денег, больше часов, больше денег! अधिक पैसे! :-)

    Использовать блоки серверного кода в представлениях (views) можно.

    Но сильно сложную логику в представлении лучше стараться не делать. Если все становится сложно, то видимо что-то делается неправильно и следует подумать, как облегчить код. Что-то можно вынести в модель или в частичные (partial) представления, или задействовать секции (section). Есть еще helper-ы, но мне подобное решение не нравятся, т.к. зачастую это сильно все усложняет и нарушают порядок, нужно правильно использовать.

    В общем, не стоит сильно увлекаться. А простенькие блоки if, for вполне допустимы, без них никак.
  • Как развернуть ASP NET MVC приложение на 1gb?

    403 - видимо не видит файл по умолчанию. Нужно в web.config прописать Index.aspx и Default.aspx.

    404 - аналогично, проблема в конфигурации сервера. Маршурты не работают, или вообще нет MVC. В последнем случае, достаточно закинуть сборки MVC в папку /bin.

    Версия IIS какая?
  • Какой способ авторизации лучше выбрать?

    Использовать обычный Membership, или свой (я обычно свой использую). Тогда не нужно будет возиться с cookies. При первой авторизации на внешнем сервере, создавать локального пользователя и сопоставлять с внешним (внешний должен вернуть логин или свой идентификатор пользователя). Авторизовать локального пользователя. Если пользователь "потеряется", отправлять на внешний сервер для авторизации, затем искать сопоставление с локальным пользователем и авторизовать его.
  • Возможна ли вставка элемента в xml-файл?

    Сложно получить позицию курсора. Проще/дешевле добавлять данные в конец файла. Либо сделать новый файл из старого, с добавлением новых данных.

    Еще вариант, при чтении можно попробовать найти нужное место в файле обычными методами, без классов Xml. А запись делать при помощи XmlTextWriter. По идее должно работать, главное найти нужное место в файле. Если нужно добавлять данные в корневой элемент в конец файла, это должно быть проще реализовать таким методом, и производительность будет выше.
  • Что означает данная строка в htaccess?

    Означает, что произведение циркумфлекса с суммой двух циркумфлексов деленных на точку, с использованием php должно являться нулю долларов :-)

    Если серьезно, то:
    RewriteRule - начало правила переопределения URL;
    ^ - проверять с начала стоки;
    [^/.]+ - более одного любого символа, исключая слэша и точку;
    | - или;
    [^/.]+\.php - тоже самое что и в предыдущем блоке, но заканчивающееся на .php;
    $ - до конца строки;
    pages.php - передать обработку, найденного по шаблону совпадения, на страницу pages.php;
    ?contentpagename=$0 - в параметр contentpagename (вместо $0);
    &%{QUERY_STRING} - добавить в конец параметры запроса (криво как-то сделано);
    [L] - другие правила не использовать.
  • Почему при попытке считать поток получаю исключение "System.Net.WebException: Время ожидания операции истекло"?

    Причем тут локальные ресурсы, если истекло время ожидания ответа от сервера? Пять потоков в течение минуты - явно не несколько страниц будет. Сайт имет право затупить и не ответить. И защищаться от флуда тоже имеет право.

    Или ваш парсер натыкается на бинарные данные большого размера и съедает всю память?
  • Функция или отдельный файл?

    Сергей Протько: не представляю, как можно жить без класса работы с БД :-)
  • Функция или отдельный файл?

    Я бы сделал функцией. Порядка больше. Удобней.

    Отдельно вообще не стал бы размещать такую мелочь. Сделал бы класс для работы с пользователями :-)
  • Как декодировать otf шрифт из base64?

    Скачивать вполне законно. А использовать - нужно смотреть условия/лицензию.

    billyK судя по всему это не OTF, а woff (Web Open Font Format). Его нужно преобразовать в OTF. Можно найти online-сервис для этого. Вот, например, первый из Google.
  • Как декодировать otf шрифт из base64?

    Должен помочь любой декодер, который способен выдавать бинарные данные. Если на выходе получать строку, а потом пытаться превратить содержимое в файл шрифта, то работать не будет, т.к. данные будут повреждены.

    Попробуйте вот этот.
    313
  • С# Массив получить из функции?

    Много букв :-)

    Если я правильно понял, то необходимо, чтобы функция возвращала массив, тогда достаточно внести два изменения в код:

    public static string[] UserNotMemberGroupp(XmlNode n)
    ...
    return UserNotGroup[e];
  • Как разрешить SWF-файлу доступ к интернету?

    Внешний ресурс должен разрешать запросы с других доменов. Если внешний ресурс принадлежит вам, то следует добавить необходимые домены в файл crossdomain.xml. Если нет, то делайте промежуточный шлюз на своей стороне и все запросы от приложения Flash направляйте через него.
  • Как вы храните накопленные знания?

    Все мы читаем всякие статейки, how-to, смотрим обучающие видео и д.т.

    Все, да не все :-) И как следствие, подобных проблем нет. Если что-то вылетает из головы, или затерялось в дальнем углу шкафа, то это мусор, место которому на свалке.
  • Почему не отображаются иконки glyphicons в iE?

    entermix: У IE могут быть сдвиги с безопасностью. Может есть уведомления, ошибки?

    И вот еще: getbootstrap.com/getting-started/#template
    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->