• Как сделать одновременную закачку и отдачу файла в браузер для закачки?

    PavelK
    @PavelK
    для браузера отдавать прямой юрл не проще? А у себя в фоне спокойненько закачать.
    вообще можно начать с того, что
    $file=  fopen("http://127.0.0.1/testfile.txt", "r");
    открывает удалённый юрл, так же открываем локальный файл на запись $savefile = fopen("testfile.txt", "w");
    затем задаём заголовки, что бы браузер понял, что это файл
    header('Content-Type: application/octet-stream');
         header('Content-Disposition: filename='.$fileName);

    затем спокойненько читаем файл, при этом отдавая и клиенту
    while(!feof($file)) //-- пока не конец файла
        {
            $data = fread($file); //-- читаем 
            print $data;  //-- отдаём в браузер
           fwrite($savefile,  $data); //-- записываем прочитанное в локальный файл
     }
    //-- закрываем файлы
    fclose($file);
    fclose($savefile);


    Это просто быстрый набросок, на работоспособность не проверял, так же нужно скорее всего дополнить необходимые заголовки.
    Хотя может я вообще не прав и тогда стоит смотреть в сторону curl

    Так же стоит учесть - время выполнения скрипта может выйти за лимит сервера и он убьётся так и не докачав.
    Ответ написан
    Комментировать
  • Как правильно спроектировать бд для конструктора тестов?

    Про соответствие вариантов ответа не очень понятно, поподробнее пожалуйста.
    Про один из нескольких или письменный - можно попробовать так: если у вопроса в базе указан только один (!) вариант ответа, то тогда он же - правильный, и тогда по определению нет смысла показывать ответ пользователю - значит вопрос письменный. Если у вопроса в базе несколько вариантов ответа, то имеет смысл показать их пользователю, что он выбрал, тогда вопрос на выбор правильных вариантов.
    Ну или действительно ставить у вопроса тип, и каждый тип обрабатывать по-разному, тем более у вас там вопросы с левыми-правыми колонками, которые не похожи на предыдущие типы.
    Ответ написан
    7 комментариев
  • Как организовать соединение множество игр с их БД?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Когда Вы делаете MongoClient.connect с использованием драйвера mongodb то создается пул соединенний с базой, они открываются и закрываются по мере необходимости, так что, не волнуйтесь и используйте одно соединение с БД для всех запросов к БД. И если у Вас платформа для игр, то храните все в одной БД, потом будет проще бекапить и восстанавливать, а если хорошо подумать, то и какая-то обобщенная структура со временем наметится.
    Ответ написан
    Комментировать
  • Как организовать соединение множество игр с их БД?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Откажитесь от PHP-шных привычек — не надо подключаться и отключаться от БД при каждом запросе. Достаточно приконнектиться при старте приложения.
    Ответ написан
    Комментировать